Okay, my video is fuzzy at some points, but I think you'll get the idea...
This isn't an entry to the contest.
I just wanted to throw the idea out there.
The idea is that if your friend has played, then they have already selected a character.
Their stat caps would be updated as they play (each minute/hour of gameplay would increment XP points or something), or for rewards they obtain during play.
Those stat caps would be read only for anyone selecting them as an ally.
Each client would represent a dimension of the character's existance, and would decrement or replenish their stats according to their gameplay.
So my instance of Rick may get is health down to 50%, while one of his other friends has him at 70%, and his own game has him at 85%.
Only the stat caps would be read by any client using the character and would adjust those caps if they are changed by the owner.
Each friend would have his own database reflecting his instance of your character.
That would reduce server use and load times, since most of the work is all done client side.