Решением этой проблемы было использование MKAnnotationView вместо MKPinAnnotationView. Ранее я использовал MKPinAnnotationView по уважительной причине, но позже добавил к выводу собственное изображение, не меняя класс создания экземпляров на MKAnnotationView.
Теперь я думаю, что это, вероятно, некорректное поведение фреймворка. Если вы собираетесь позволить MKPinAnnotationView принимать вызов setImage, убедитесь, что он правильно обрабатывает его при изменении mapTypes. Если вы хотите, чтобы они делали булавки, тогда ничего не делайте с вызовом. Ах, хорошо.