Demonstration of the issue: /a/gBwqP (imgur) The bottom image is what it's supposed to look like, the top image is the bug itself.
for i=1,#A do
if A[i]:IsA("BasePart") then
local weld1 = Instance.new("Weld")
weld1.Part0 = chest
weld1.Part1 = A[i]
local ab = CFrame.new(chest.Position+Vector3.new(0, 0, 0))
local C0 = chest.CFrame:inverse()*ab
local C1 = A[i].CFrame:inverse()*ab
weld1.C0 = C0
weld1.C1 = C1
weld1.Parent = chest
local weld1a = Instance.new("Weld")
weld1a.Part0 = plrChest
weld1a.Part1 = chest
local abc = CFrame.new(plrChest.Position+Vector3.new(0, 0, 0))
local C0 = plrChest.CFrame:inverse()*abc
local C1 = chest.CFrame:inverse()*abc
weld1a.Parent = plrChest
A[i].Anchored = false
A[i].CanCollide = false
end
end

2 comments
What is chest and plrChest, and why are you welding them togehter for every BasePart in the table A?
Chest is an invisible part that covers the player's torso, or in this case, plrChest