Here is a script which morphs the character. I use it in my game.
local myMorphCharacter = nil -- DO NOT MAKE NIL, SET THIS TO YOUR CHARACTER
function morph(player, morphName)
local newCharacter = game.ReplicatedStorage.Characters:FindFirstChild(morphName):Clone()
newCharacter.Name = player.Name
newCharacter.HumanoidRootPart.CFrame = player.Character.HumanoidRootPart.CFrame
newCharacter.Parent = workspace
player.Character = newCharacter
Note: The Camera event fired in the function above, puts the camera in the right position as when you morph, it screws up the camera for the player.
I will edit this for random player spawning.