The best way to first test your char is to load it as a npc. if it works as expected when you have it possessed you can use the following to replace the main character.
We use this code to change appearance , i am unsure how dependent it is on other stuff so let me know. It is server side code we call from a chat command.
// Function to change your character
remote function Survivor_ChangeCharacter_Civillian(sourcePID as ID)
accountID as ID = sourcePID // get account ID
accntNode as NodeRef of Class _PlayerAccount = accountID // use as node to
var current_character_appearance = accntNode.GetMyVisibleCharacter()
glomclass( "_extendedeventobject", current_character_appearance )
where current_character_appearance is kindof _extendedEventObject
current_character_appearance._extendedEventLookup["_characterSpecification"] =\
current_character_appearance._characterSpecification
marshal current_character_appearance.geometry_list to \
current_character_appearance._extendedEventLookup["geometry_list"]
current_character_appearance._characterSpecification = "Civillian_1"
.
.