Thanks for the responses.
Sebastian, yes I do have Mp3tag set to read ID3v2 tags and not APEv2, if you mean:
Options->Tags->Mpeg->Read: ID3v1 and ID3v2 are checked and APE is not checked
Options->Tags->Mpeg->Write: ID3v1 and ID3v2 are checked and APEv2 is not checked
Options->Tags->Mpeg->Remove: ID3v1 and ID3v2 and APE are checked
I am pretty positive that the only program that has touched these files is mp3tag (except as noted below), though by two different versions, which is why I asked. In fact, none of these files had any tags (id3v1 or id3v2) until I created them with the earlier mp3tag.
Dano, I think you could be right in that I now realize itunes may have also modified these files without my knowing. If you have itunes' "Sound Check" enabled, it apparently modifies all the files in your library to add the volume normalization tag, in the background and without notification. If itunes is having trouble writing id3v2.4, then it is plausible that it corrupted them when it updated the id3v2.4's.
Unfortunately, as per your suggestion, when I use itunes to convert the tags to id3v2.3 and then read them with mp3tag, everything is ok except the cover art is messed up (the jpg is there, but is blank except for a few pixels in the corner). The odd thing is that itunes still sees the cover art fine after the conversion, so the two programs must be parsing the tags differently (unless itunes is seeing some cached version?)
The only workaround is brute force I guess: use itunes to convert back to id3v2.3 and extract the cover art, then use mp3tag to delete the art and re-add the extracted image. Do this for several hundred songs, one-by-one. Anyone have any suggestions (like a batch way)? Thanks.