how do I make my gui button morph work basicly there is how I would like it to work

https://i.gyazo.com/8eea046d346477e78677eee57cc6907a.png

but here is how everything was placed before I change everything of place like I want it to be

https://i.gyazo.com/29156a901d13a5398cd4a88c120ecb9c.png

and also if you can help me with this but that you need me to replace somethings differently so it works you can also tell me

function onTouched(hit)
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Chest") == nil then
		local g = script.Parent.Parent.Chest:clone()
		g.Parent = hit.Parent
		local C = g:GetChildren()
		for i=1, #C do
			if C[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "WedgePart" then
				local W = Instance.new("Weld")
				W.Part0 = g.Middle
				W.Part1 = C[i]
				local CJ = CFrame.new(g.Middle.Position)
				local C0 = g.Middle.CFrame:inverse()*CJ
				local C1 = C[i].CFrame:inverse()*CJ
				W.C0 = C0
				W.C1 = C1
				W.Parent = g.Middle
			end
				local Y = Instance.new("Weld")
				Y.Part0 = hit.Parent.Torso
				Y.Part1 = g.Middle
				Y.C0 = CFrame.new(0, 0, 0)
				Y.Parent = Y.Part0
		end

		local h = g:GetChildren()
		for i = 1, # h do
			if h[i].className == "Part" or  h[i].className == "UnionOperation" or C[i].className == "WedgePart" then  
				h[i].Anchored = false
				h[i].CanCollide = false
			end
		end
		
	end
end

script.Parent.Touched:connect(onTouched)

this is the script called Torso and I don't know how to make it work do that when I click the model in Monster Called (Chest) changes the torso of the character into the chest model