Un-Ragdoll script not changing CFrame

Hi, I am trying to make a un-ragdoll script and I decided that reloading the character to look the same and same position and orientation was how I was going to achieve it, problem is, it does not teleport OR change your clothes to your old ones. I do not know the reason why, so I am asking you. (This is in a normal script in workspace btw)
Script:

--Variables--
local UnRagdollEvent = game.ReplicatedStorage.RemoteEvents.UnRagdoll
--Un-Ragdoll script--
UnRagdollEvent.OnServerEvent:Connect(function(Player)
	local Character = Player.Character
	local Shirt = Instance.new("StringValue",Player)
	Shirt.Value = Character.Shirt.ShirtTemplate
	local Pants = Instance.new("StringValue",Player)
	Pants.Value = Character.Pants.PantsTemplate
	print(Pants.Value)
	local Pos = Instance.new("Part",workspace)
	Pos.CanCollide = false
	Pos.Transparency = 1
	Pos.Anchored = true
	Pos.CFrame = Character.HumanoidRootPart.CFrame
	Pos.Name = Player.Name.."Pos"
	Player:LoadCharacter()
	repeat wait() until Character ~= nil
	Character.Shirt.ShirtTemplate = Shirt.Value
	Character.Pants.PantsTemplate = Pants.Value
	Character:WaitForChild("HumanoidRootPart")
	Character.HumanoidRootPart.CFrame = Pos.CFrame
	print(Pos.CFrame)
	Shirt:Destroy()
	Pants:Destroy()
	Pos:Destroy()
end)

If there is a better way to un-ragdoll someone, please tell me! Also Happy Holidays!

Also there is no errors, just prints while i was trying to debug it.