Why isn't .MouseButton1Click function working on a cloned button?

I am making character customization for a military game and I am trying to make a local script that handles it , here’s my code so far:

function GetTeams()
	return(string.split(game:GetService("ReplicatedStorage"):WaitForChild("MatchInfo"):WaitForChild("CurrentTeams"):WaitForChild("Info").Value, ";"))
end

function GetPlayerTeamName()
	return(Player.Team.Name)
end

function ReturnTeam()
	if GetPlayerTeamName() == "Attackers" then
		return(GetTeams()[1])
	elseif GetPlayerTeamName() == "Defenders" then
		return(GetTeams()[2])
	end
end

function RemoveChrThings(model)
	for i,v in pairs(model:GetChildren()) do
		if v:IsA("Accessory") then
			v:Destroy()
		elseif v:IsA("Shirt") then
			v:Destroy()
		elseif v:IsA("Pants") then
			v:Destroy()
		elseif v:IsA("Model") then
			v:Destroy()
		end
	end
end

function SetupItem(Item, Model)
	local c = Item:Clone()
	c.Parent = Model
	local Weld = Instance.new("WeldConstraint")
	c:MoveTo(Model[Item:WaitForChild("WeldTo").Value].Position)
	Weld.Parent = c
	Weld.Part0 = c.PrimaryPart
	Weld.Part1 = Model[Item:WaitForChild("WeldTo").Value]
end

local CharacterfromLoadout = script.Parent:WaitForChild("Fade"):WaitForChild("Content_Character"):WaitForChild("CurrentCharacter"):WaitForChild("WorldModel"):WaitForChild("Character")

function SetupCurrentCharacter()
	local PlayerTeam = ReturnTeam()
	local PlayerKit = Player:WaitForChild("KitInfo"):FindFirstChild(PlayerTeam)
	
	RemoveChrThings(CharacterfromLoadout)
	
	task.wait(0.5)
	
	local KitStuff = game:GetService("ReplicatedStorage"):WaitForChild("Kits"):FindFirstChild(PlayerTeam)

	if KitStuff:WaitForChild("Vests"):FindFirstChild(PlayerKit:WaitForChild("Vest").Value) then
		SetupItem(KitStuff.Vests:FindFirstChild(PlayerKit.Vest.Value), CharacterfromLoadout)
	end

	if KitStuff:WaitForChild("Helmets"):FindFirstChild(PlayerKit:WaitForChild("Helmet").Value) then
		SetupItem(KitStuff.Helmets:FindFirstChild(PlayerKit.Helmet.Value), CharacterfromLoadout)
	end

	if KitStuff:WaitForChild("Legs"):FindFirstChild(PlayerKit:WaitForChild("Legs").Value) then
		for i,v in pairs(KitStuff:WaitForChild("Legs"):FindFirstChild(PlayerKit:WaitForChild("Legs").Value):GetChildren()) do
			SetupItem(v, CharacterfromLoadout)
		end
	end

	if KitStuff:WaitForChild("Outfits"):FindFirstChild(PlayerKit:WaitForChild("Outfit").Value) then
		for i,v in pairs(KitStuff:WaitForChild("Outfits"):FindFirstChild(PlayerKit:WaitForChild("Outfit").Value):GetChildren()) do
			v:Clone().Parent = CharacterfromLoadout
		end
	end
	
end

CharacterCustomization.Vest.MouseButton1Click:Connect(function()
	local PlayerTeam = ReturnTeam()
	local PlayerKit = Player:WaitForChild("KitInfo"):FindFirstChild(PlayerTeam)
	local KitStuff = game:GetService("ReplicatedStorage"):WaitForChild("Kits"):FindFirstChild(PlayerTeam)

	for i,v in pairs(CharacterCustomization:WaitForChild("Handler"):GetChildren()) do
		if not v:IsA("UIListLayout") then
			v:Destroy()
		end
	end

	for i,v in pairs(KitStuff:WaitForChild("Vests"):GetChildren()) do
		local Clone = script:WaitForChild("CharacterCExample"):Clone()
		Clone.Name = v.Name
		Clone.Parent = CharacterCustomization:WaitForChild("Handler")
		Clone.Text = v.Name
		Clone.Visible = true
		Clone.MouseButton1Click:Connect(function()
			print("Clicked")
			MatchEvents:WaitForChild("ChangeKitInfo"):FireServer("Vest",v.Name)
			task.wait(0.5)
			SetupCurrentCharacter()
		end)
	end
end)

The part with Clone.MouseButton1Click doesn’t work at all, doesn’t print or make a change.

Let’s run this by doing some quick changes:

Instead of using MouseButton1Click please try using Activated

Tried, didn’t work (csssaahsss)