I see a couple of issues there. Editing an existing character might work but that character won't be able to be successfully called if you didn't add in that new ID you'd created manually to globals.slaves (which is how all of the person references are called by the game). As you said, something that isn't vanilla (like Halfkin Dragon) has no racial description so will force a crash for sure.
I'd recommend trying that on an existing slave without effecting the name/id and see if you can get it to manually update like that.