Need help, Morph system isn't working as planned

local function weldToPart(mainPart,part0,part1)
local weldConstaint = Instance.new("WeldConstraint")
weldConstaint.Parent = mainPart
weldConstaint.Part0 = part0
weldConstaint.Part1 = part1
end

local function hideBasicPlayer(character,transparency)
character.Head.face.Transparency = transparency
local allParts = character:GetChildren()
for i = 1, #allParts do
	if allParts[i]:IsA("Part") and allParts[i].Name ~= "HumanoidRootPart" then
		allParts[i].Transparency = transparency
	elseif allParts[i]:IsA("Hat") or allParts[i]:IsA("Accessory") then
		allParts[i].Handle.Transparency = transparency
	end
end
end

local function weldMorphtoPlayer(morph,character)
if script.Parent.HidePlayer.Value == true then
	hideBasicPlayer(character,1)
end

local newMorph = morph:Clone()

local function weldPartsToPlayer(bodyPart)
	local morphHead = newMorph[bodyPart]:GetChildren()
	for i = 1, #morphHead do
		if morphHead[i]:IsA("Part") or morphHead[i]:IsA("MeshPart") or     morphHead[i]:IsA("UnionOperation") and morphHead[i].Name ~= "Middle" then
			morphHead[i].Anchored = false
			morphHead[i].CanCollide = false
			weldToPart(newMorph[bodyPart]._Middle,newMorph[bodyPart]._Middle,morphHead[i])
		end
	end
	newMorph[bodyPart]._Middle.Position = character[bodyPart].Position
	local w = Instance.new("Weld")
	w.Parent = newMorph[bodyPart]._Middle
	w.Part0 = newMorph[bodyPart]._Middle
	w.Part1 = character[bodyPart]
end

weldPartsToPlayer("Head")
weldPartsToPlayer("Torso")
weldPartsToPlayer("Left Arm")
weldPartsToPlayer("Right Arm")
weldPartsToPlayer("Left Leg")
weldPartsToPlayer("Right Leg")

newMorph.Parent = character
newMorph.Name = "_CharacterMorph"

local morphed = Instance.new("BoolValue")
morphed.Name = "_Morphed"
morphed.Parent = character
print("completed! morphed "..character.Name.." into "..morph.Name.."!")
end

script.Parent.Touched:Connect(function(part)
if part.Parent:FindFirstChild("Humanoid") and not part.Parent:FindFirstChild("_Morphed") then
	    weldMorphtoPlayer(game.ReplicatedStorage.Game_Morphs[script.Parent.SelectedMorph.Value],part.Parent)
end
end)

This is what’s happening:

ANY HELP IS APPRECIATED! Thank you!!