Part brickcolor not changing

heres footage:

External Media
local plrs = game.Players
wait(5)
while wait(1) do
for i,v in pairs(plrs:GetPlayers()) do
		v.Character.Humanoid.WalkSpeed += 1
		if not v.Character.Head:FindFirstChild("WSPEED") then
			local WSPEED = script.WSPEED:Clone()
			WSPEED.Parent = v.Character.Head
			WSPEED.Speed.Text = v.Character.Humanoid.WalkSpeed
		else
			v.Character.Head.WSPEED.Speed.Text = v.Character.Humanoid.WalkSpeed
		end
			
		if v.Character.Humanoid.WalkSpeed >= 17 then
			v.Character.Animate.walk.WalkAnim.AnimationId = "rbxassetid://12813700920"
			v.Character.Animate.run.RunAnim.AnimationId = "rbxassetid://12813700920"
			v.Character.Archivable = true
			local fakeclone = v.Character:Clone()
			fakeclone.Parent = workspace
			fakeclone.Humanoid:Destroy()
			fakeclone.Name = "CLONEMOMENT"
			fakeclone.Head.WSPEED:Destroy()
			v.Character.Archivable = false
			for _,part in pairs(fakeclone:GetDescendants()) do
				if part:IsA("Part") then
					part.Transparency = 0.9
					part.CanCollide = false
					part.BrickColor = BrickColor.random()
					part.Anchored = true
	
				elseif part:IsA("MeshPart") then
					part.Transparency = 0.9
					part.Anchored = true
					part.BrickColor = BrickColor.random()
					part.CanCollide = false
				end
			end
			wait(1)
			fakeclone:Destroy()
		end
	end 
end

and this is the script, for some reason only the torso is changing color so yeah, any fix?
no errors in output btw