Does anybody know why this is happening? I tried avoiding this by scripting the CFrame but that only made it worse, the parent of the copy of the mask is just the players character and for some reason it always gets bunched up together inside the players head. There is a cyclinder shaped basepart inside the head if that could be causing the problem? heres what it looks like

https://imgur.com/a/m865J9c

The one on the right is what its supposed to be but nevertheless it still wont do what its meant to

heres the script which is inside the model for the whole mask

local Head = script.Parent
local debounce = false
local Touch = script.Parent.nose
    Touch.Touched:Connect(function(p)
    local player = game.Players:GetPlayerFromCharacter(p.Parent)
	    if player then
		if not debounce then
			debounce = true
		end
    if not player.Character:FindFirstChild("sd.bbb :yes:") then
    local clone = Head:Clone()
    clone.Parent = player.Character
    clone:SetPrimaryPartCFrame(player.Character.Head.CFrame)
    clone.Name = "sd.bbb :yes:"
			    for _,v in pairs(clone:GetChildren()) do
				if v:IsA("BasePart") or v:IsA("Part") then
					
				
    v.Anchored = false
    local w = Instance.new('Weld')
    w.Part0 = v
    w.Part1 = p.Parent.Head
					    w.Parent = v
					end
    end
    end
	    end
	wait(5)
	debounce = false
    end)