UPDATE:
Images who are projected on the MKMapView using a MKOverlayView use the Mercator projection, while the image that I use as input data uses
WGS-84 data is using UTM projection, MKMapView is using mercator. You are using different methods to map a 3D object to a 2D surface, hence it is not giving the same results.
You'll need to go down in GDAL and move the incomming image to a different projection. Let me know if you figured it out, because it ain't an easy