Apologies if I came off a little hostile. The initial post sounded more like you just had randomly mismatched tags. But you have a solid reason for the tags not to match.
@Tolriq I did some testing on this myself and this behavior overrides even the values in an artist.nfo file.
This seemingly does not apply to the <name> field. I made an nfo using name in “TEST ARTIST” and two tracks, one using that format and one using “Test artist”.
The nfo data is being read (bio is displayed) but the Artist page displays “Test artist” rather than the nfo’s upper-case value. The Tracks page correctly displays the value in each track’s tags.