Do you have more than one type of tag for each file (e.g., ID3v1, ID3v2, APE all in the same MP3). You may be reading only ID3v2 in mp3tag and properly deleting a field, but another program is reading an old ID3v1 tag in the same file. Look at your tagging options within mp3tag OPTIONS.
Unfortunately this isn't a bug, MP3Tag is just unclear on what tags you are viewing and changing, and the results of that change. Like garym said, each mp3 can have three different tag formats. MP3Tag allows you to choose seperate options for Reading, Writing, and Removing fields from each of these tag formats. This causes unexpected behavior when removing a tag field, because removing or ing a field only removes the field from the format(s) that MP3Tag is set to "Write", not "Remove". So you may be ing the field from ID3v1, but the field still exists in ID3v2 and in APE. The only way to remove a single field from all tag formats is to enable Write for all formats.
Mp3tag offers some tag related system variables:
%_tag%, %_tag_read%, %_tag_size%, %_tag_size_appended%, %_tag_size_prepended%.
Mp3tag is able to tell about the tag read status on a per file basis.
Using the "Columns" dialog you can insert a new column:
Name: TagRead (TagTypes)
Value: %_tag_read%[ (%_tag%)]
It's easy to see, which tag types exist in the file (ID3v1, ID3v2.3, ID3v2.4, FLAC, APE) and which tag has been read. Well there is one caveat, it does not make clear what tag type is actually written.
I do have that column enabled. But knowing what format is being displayed and what formats exist in each file doesn't do much to help in most situations like this. It's just unintuitive to have MP3Tag able to display one format at a time, but still allow you to change any other format while not showing the results, or "trick" you into thinking that you removed a field from the file when in fact you only removed one third of that field.
That said, and going a bit off topic, I have used a LOT of programs for managing my tags and none of them handle it in a method I would consider to be perfect. Of the software I have used in recent versions though, MP3Tag comes the closest. I think the best way to handle tags is to let the user decide specifically what formats to allow in their files. Changes to the tag fields would be "mirrored" to all specified allowed formats within the file. Any other formats would be stripped completely.
In every program I've tried, the easiest way to set up my files the way I want them is to review the existing tags for accuracy, rename the file based on those tags, then strip all tags in all formats, then re-populate only the ID3v2 fields based on the filename. MP3Tag makes this relatively easy: Alt+1, Ctrl+R, Alt+2, done. I thought I could make it even faster and easier using a custom Action. That isn't currently possible, because there's no way to strip entire tag formats as an action if you don't also have it set to Write to those formats.
Hmm, yes, I also stumbled over this hurdle. And my feeling is, that the prioritized nesting of tags is a design flaw in Mp3tag. Because supported tag types can be written in (hidden) "parallel mode", why not displaying their related tag fields side by side in view mode?
Once you have realized that "read" and "write" works on tag fields and "remove" works on entire tags, you can live with Mp3tag.
But everytime when I want to copy some tag field content from an APE tag to an ID3v2 tag I wonder how I have to switch around in Mp3tag system options and further on what other steps I have to go to get rid off the APE tag.