How can three p orbitals per atom bond in tin (II) sulfide?
I think your conclusion of a dative bond between sulphide anions and tin cations (assuming pure ionic bonding, which is clearly not the case if you study the image closely) is correct.

Note that the charges you are observing are nothing but formal charges. In a macroscopic picture, tin is still less electronegative than sulphur and the electrons would be considered sulphur’s e.g. when determining oxidation states. The mere fact that an electron pair with correct symmetry is adjacent to an atom is enough to stabilise said atom’s empty orbital.