Not sure what methods you're using to do this but I was wondering...
Since each character is made up of three parts Graphics packet, Animation, and Palette, (Sprite size is irrelevant here) couldn't you just tie those to an address in the 7E28XX range like you did with the run speed value? Then a simple ingame event could set those addresses to new values.