How to fix my custom leaderboard icons being clientsided?

The problem with my icons is that it seems entirely clientsided, despite having a server script that fires to all clients… I’ve tried numerous different things over the 24 total hours I’ve been working at it, and nothing seems to work… I am unsure exactly of what to do to get these icons working. Below you will find the code that I’ve attempted.

Serverscript

local replicatedStorage = game:GetService("ReplicatedStorage")
local iconEvent = replicatedStorage.IconChangeEvent
local Players = game:GetService("Players")

Players.PlayerAdded:Connect(function(player)
	local playerlist = player.PlayerGui:WaitForChild("Playerlist")
	local Handler = playerlist.Frame.Handler
	local Icon = Handler.Template.Icon
	player:GetPropertyChangedSignal("Team"):Connect(function(): ()
	local playerTeam = player.Team
	if playerTeam.TeamColor == BrickColor.new("Royal purple") then
		Icon.Active = true
		Icon.Image = "rbxassetid://18413761813"
	elseif playerTeam.TeamColor == BrickColor.new("Bright red") then
			Icon.Active = true
			Icon.Image = "rbxassetid://18413212927"
	elseif playerTeam.TeamColor == BrickColor.new("Dark green") then
			Icon.Active = true
			Icon.Image = "rbxassetid://18413991987"
	elseif playerTeam.TeamColor == BrickColor.new("White") then
			Icon.Active = true
			Icon.Image = "rbxassetid://18414227286"
	elseif playerTeam.TeamColor == BrickColor.new("Electric blue") then
			Icon.Active = true
			Icon.Image = "rbxassetid://18414094164"
	else
			
	end 
		iconEvent:FireAllClients(playerTeam.TeamColor, Icon.Image)
	end)
	

end)
			

localscript

iconEvent.OnClientEvent:Connect(function(var1, var2)
	if var1 == localPlayer.Team.TeamColor then
		Icon.Image = var2
	end
end)
	refresh()

and by clientsided, this is what I mean
The icons on my side:
image

The icons on my sister’s side:
image

I’ve been trying to figure this out for some time, and now I’m genuinely stumped… I am truly unsure as to what I can do to fix this…

Any help would truly be appreciated!

No errors in the output? Have you tried to print out the arguments passed in the RemoteEvent?

yes, I have tried printing the arguments, and they’re sent through successfully
image

However, I’ve noticed that the localscript part can be erased and it will not affect the icons appearing within the client.

So, I do believe there may be an issue within the serversided script, but I’m unsure of what it could be

Would creating clones of the template, and making sure its assigned to the localplayer instead of editing the same template work for my purposes?