image.SetPropertyItem is fine for setting a field which exists. for example if a photo already has GPS data and you want to update it to a new coordinate, that will work.
However, if you try to set this property for a photo that has never had GPS data within it, it will fail and say that this...