A "simple" way of doing it would be to find the character portrait address, find what reads it, find the rendering code from there, and then hook it so you can add arbitrary stuff & things. Also I may have lied when I said "simple", since even if you're using NICE, the drawing functions and the arbitrary hooks need support from the C layer
but it's definitely doable that way, and more flexible than the other (but more sensible) method of just extending portrait size to add room for a name