Whoops, hard coded some sizes for the width and height that apparently change (for reasons unknown) e.g. *UInt32 KPictureProfileCurrentWidth was observed to be either 960 or 1440. Changing the values allows for a higher quality image to be rendered onto the Profile and Icon but also means you need to check/change the values every time you want to inject an image. Did testing on my old save file which had 960 as width but then when I tried it on a newer save file, it has 1440 as a width, which made the image come out incorrectly. I will remedy this issue (or try) as soon as I can.
Damn these inconsistent sizes!