Models welded using weld scripts produce different results on the client and server

Hello.
When I clone a model to be welded from server storage to workspace using Weld script, only some parts are misaligned.
I am using the following script for these welds.

local PrimaryPart = script.Parent.PrimaryPart
local Parts = script.Parent:GetDescendants()

for i = 1, #Parts do
	if Parts[i]:IsA('BasePart') then
		local weld = Instance.new("Weld")
		weld.Part0 = PrimaryPart
		weld.Part1 = Parts[i]
		weld.C0 = PrimaryPart.CFrame:inverse()
		weld.C1 = Parts[i].CFrame:inverse()
		weld.Parent = PrimaryPart
	end
end

The model contains almost 100 parts including meshes and BaseParts.
Since they are welded correctly on the server side, it seems that the duplication on the client side is not working, do you know why?


Correctly welded (server side)


Incorrect welding (client side)
You can see that the button is stuck in the back.

Further investigation revealed that tilted parts are always out of position. Parts with an orientation of 90 or 180 degrees seem to weld correctly.