It turns out that upgrading Image::ExifTool fixed the image corruption problem. Applying the GPS tags was inserting invalid tags into the jpeg files.