Problem with scripting weld

Hey, I am having an issue with assigning Part0 on a weld.
This is the code

			for _, pieces in pairs(newarmor:GetChildren()) do
				if pieces:IsA("Model") then
					
					pieces:PivotTo(char[pieces.Name].CFrame)
					
					local wc = Instance.new("WeldConstraint")
					wc.Part0 = char:FindFirstChild(pieces.Name)
					wc.Part1 = pieces.PrimaryPart
					wc.Parent = pieces.PrimaryPart
				end
			end

For some reason it makes another part in the armor model part0 even though it has no way of recognising that other part. There are no errors or nothing. What have I done wrong or is studio just broken. It only works with the armor model head which is excatly the same. I also removed the code/put print there but it didnt even stop it from creating the weld. I am so confused. Thanks