Hey! I have a script which puts on a player vest while he was clicks on menu GUI but it's not working. How can I fix this?

this is this script

script.Parent.MouseButton1Click:Connect(function()
    local g = script.Parent.Parent.Chest:clone()
    local player = game.Players.LocalPlayer
        g.Parent = player
        local C = g:GetChildren()
        for i=1, #C do
        if C[i].className == "Part" or C[i].className == "UnionOperation" or C[i].className == "MeshPart" 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

                    local Y = Instance.new("Weld")
                    Y.Part0 = player.Character.Humanoid.Torso
                    Y.Part1 = g.Middle
                    Y.C0 = CFrame.new(0, 0, 0)
                    Y.Parent = Y.Part0

            local h = g:GetChildren()
                for i = 1, # h do
                        h[i].Anchored = false
                        h[i].CanCollide = false

                player.Saude.Protecao.VestProtect.Value = 50
                player.Saude.Protecao.VestVida.Value = 100
            end
        end
    end
end)