The best that I've found is Mp3tag. It's free and extremely thorough.
---
To put it simply, there are multiple "versions" of tags. When you change tags via Windows Explorer, it only changes tags in one "version," so incorrect tags may be left behind in the other tag "versions." So even though the tags look correct in Windows Explorer, there can still be incorrect information on the file, which your media player will still pick up.
And many programs also add their own tags, which can be hidden from Windows Explorer.
---
If you download Mp3tag, the first thing you should do is go to Tools > Options > Tags > Mpeg.
Under "Read," check all 3 boxes (ID3v1, ID3v2, APE). Under "Write," uncheck ID3v1 and APEv2. Check ID3v2 and ID3v2.3 UTF-16. Under "Remove," check all 3 boxes.
Then go to Tools > Options > Tags > Ape, Mpc. Under "Read," check both boxes. Under "Write," uncheck both boxes. Under "Remove," check all 3 boxes.
Basically, this means that it will show the tags from all possible tag "versions," but will only add new tags in the correct version.
---
So after choosing those settings, just drag+drop songs into the program, and you can start editing the files.
If you right click on a song and go to Extended Tags, it will show you all the tags on that particular song, and you can see how crazy they are! From that window, you can change any tag or remove it.
Where it displays information about the song, there should be a column called "Tag," and that shows the tag versions that are on the file. If you see more than one version listed there, you can right click on the file, select Tag Cut, and it should remove all tags from the file. Then you can do Tag Paste, and it will paste the tags back in--but because of the settings you chose earlier, it will only put the tags in the correct version, so you should have less trouble in your media player.
---
There's tons of stuff you can do in the program. Let me know if you need help♪