Have you ever looked at contact photos on iOS, but found that somehow they readjusted themselves? There is a trick to readjust contact photos, and it doesn’t involve the contacts app. I’ve had this happen several times when I zoom in on a person’s face in a photo, and later it displays a different area of the image.
Instead of using contacts to set a picture, you can do it in Photos. When you browse to the picture you want for a contact, tap the share button on the bottom. Swipe left until you see a button that says Assign to Contact.
For some reason, this seems to “lock” pictures so that they don’t get messed up later, as opposed to setting the image in contacts.