It's been a hot minute but from what I remember about IDv3, the spec is really only like half of the story. Different media players and organisers have pretty different ideas on how the fields should work and which fields are actually relevant, so you really need to just look at how all of these different mainstream programs handle their data if you want to get your own IDv3 implementation working properly.
Then there's the frame names. Due to how all of these various ID3v2 implementations do their frames, the names in the spec don't really reflect their real-world names. "TPE2" is specified to be the "Band/Orchestra/Accompaniment" frame in the spec, but in the real world it's actually the "Album artist" frame. And while TIT2 is very much universal, I think TIT1 was much more questionable and different implementations have different ideas on what TIT1 should be.