I had the same problem, and through this website and a few others, I think I may have a solution that will work for you.
I've found that if I used MP3Tag,
then loaded all the files in there that give you the wrong Duration, then Select All and click on the Advanced Tags, you'll find a field called "Length". Select it, then click on the red X, which simply removes the "tag field" for the file's Duration, and then your player will simply find the duration itself and report the right size.

I hope this fixes your issue as it did mine.