I need help resizing

I have clothes that are welded to the player. accessories are parented into those clothes. so i can weld the accessory to the clothes easier. when i weld the accessories i dont change their cframe. as i’ve already put them in a proper position before scripting. so they’re positioned perfectly when they’re welded

The issue i’m having is, when i resizie the clothes,player and the accessories . the clothes are positioned perfectly with a little calculation. but because i dont cframe each individual accessory. they are position correctly and look weird.

Do you know how i can get them to look how they did before i resized everything?

I’ve tried multiplying the cframe. but it just positions them somewhere crazy.

Before resizing:
image

After resizing:

image

Script:
ChangeOutfit = function(p,data)
local findcloth = p.Character.Cosemetics:FindFirstChild(“Cloth”)
if findcloth then findcloth:Destroy() end
local clothes = game.ReplicatedStorage.Cosemetics.Clothes[data]:Clone()
for _,cloth in pairs(clothes:GetChildren()) do
for _,extrabits in pairs(cloth:GetChildren()) do
if extrabits:IsA(“Part”) or extrabits:IsA(“MeshPart”) or extrabits:IsA(“UnionOperation”) then
extrabits.Size = extrabits.Size * players[p].PlayerSize

				effects.weld(extrabits,cloth)
			end
		end
		cloth.Size = cloth.Size * players[p].PlayerSize
		cloth.CFrame =CosemeticAdjustments.Clothes[data] and CosemeticAdjustments.Clothes[data][cloth.Name] and CosemeticAdjustments.Clothes[data][cloth.Name](p.Character,cloth) 
			or p.Character[cloth.Name].CFrame *CFrame.new(0,( ( p.Character[cloth.Name].Size.Y- cloth.Size.Y)/2) +0.02 ,0) 
		effects.weld(cloth,p.Character[cloth.Name])
	end
	players[p].UserData.Character.EquippedOutfit = data
	clothes.Parent = p.Character.Cosemetics
	clothes.Name = "Cloth"
	if table.find(players[p].UserData.Character.Outfits,data) == nil then
		players[p].UserData.Character.Outfits[#players[p].UserData.Character.Outfits + 1] = data
	end
	players[p].Character:Set(players[p].UserData.Character)
end

I Made it works guys. this is show i did it. im super happy rn. idk if you need the tonumber or not.

local x,y,z = cloth.CFrame:ToObjectSpace(extrabits.CFrame).X,cloth.CFrame:ToObjectSpace(extrabits.CFrame).Y,cloth.CFrame:ToObjectSpace(extrabits.CFrame).Z
print(x,y,z)
extrabits.CFrame = cloth.CFrame * CFrame.new(tonumber(x* players[p].PlayerSize),tonumber(y* players[p].PlayerSize),tonumber(z* players[p].PlayerSize))
extrabits.Size = extrabits.Size * players[p].PlayerSize

You dont need the tonumber, so yeaaaaaaah