You will have to create a trigger series that reads something like this...
Untitled Trigger 001
Events
Unit - A unit Begins casting an ability
Conditions
(Ability being cast) Equal to Morph to little girl
Actions
Set PlayerMorphAlpha[(Player number of (Owner of (Triggering unit)))] = (Casting unit)
Special Effect - Create a special effect attached to the overhead of (Casting unit) using Abilities\Spells\Other\Levelup\LevelupCaster.mdl
Special Effect - Destroy (Last created special effect)
Unit - Replace (Triggering unit) with a (Unit-type of PlayerMorphBeta[(Player number of (Owner of (Casting unit)))]) using The old unit's relative life and mana
Couple of things:
PlayerMorphAlpha PlayerMorphBeta will have to be set in initialization triggers.
It really depends on how many characters there are, cuz you may have to write triggers to set abilities and stuff. That way, the unit you swap to will have the same skills as the last time you used it...
Both Morphs are unit Array Variables
I'll test it out and send you the map, so you can see...