Further digging reveals that if I replace the © character in the EXIF/IPTC data with (c) instead, it works - there seems to be an issue processing that character when reading the data. I had set the default IPTC encoding to UTF-8, but that didn't seem to do it (and presumably affects only IPTC, not EXIF).
Any thoughts? For now I can just use (c) instead, but perhaps this is a bug...