Could be byteorder then, another thing tags can be unsychronized to prevent players mistakenly identifying the metadata as the start of the audio. This only has to be done for songs with certain byte sequences in the metadata, but if you encode using UTF16 in one way this can happen quite often. Maybe MP3Tag is/not unsychronizing or Google understands/doesnt understand synchronization.
I can't answer any of these questions for use because I don't have an Android phone at the moment, but I do have an opensrc tag library called
JAudiotagger Library that a few devlopers would like to use for developing Android apps, hence my interest in your issue.