Why does my part go super high up?

What I would like to happen is for the model to tween down while rotating, then anchoring everything in the model, then removing all the welds, then tweening the angle of the left and right jaws to open slightly.

It all goes smoothly until the jaw opening where it will then go really really high into the sky and i cant figure out why.

	local Blasters = game.ReplicatedStorage.Attacks.Sans["Blaster Ring"].BlasterRing:Clone()
	Blasters.Parent = workspace.Debris
	Blasters:MoveTo(position * Vector3.new(1,5,1))
	
	local MainPart = Blasters.CentrePart
	
	local TI = TweenInfo.new(
		0.3,
		Enum.EasingStyle.Linear,
		Enum.EasingDirection.Out,
		0,
		false,
		0
	)
	
	local TweenDown = TS:Create(MainPart, TI, {Position = position * Vector3.new(1,2,1)})
	TweenDown:Play()
	
	local TweenAround = TS:Create(MainPart, TI, {CFrame = MainPart.CFrame * 
 CFrame.Angles(math.rad(0),math.rad(180),0)})
	TweenAround:Play()
	
	for i,v in pairs(Blasters:GetDescendants()) do
		if v:IsA("MeshPart") or v:IsA("UnionOperation") then
			local TweenStart = TS:Create(v, TI, {Transparency = 0})
			TweenStart:Play()
		end
	end
	
	wait(0.35)
	
	for i,v in pairs(Blasters:GetDescendants()) do
		if v:IsA("Model") or v:IsA("Highlight") or v:IsA("ManualWeld") or v:IsA("Attachment") or v:IsA("ParticleEmitter") then
		else
			v.Anchored = true
		end
	end
	
	for i,v in pairs(Blasters:GetDescendants()) do
		if v:IsA("ManualWeld") then
			v:Destroy()
		end
	end
	

	
	wait(2)
	
	for i,v in pairs(Blasters:GetDescendants()) do
		if v.Name == "LeftJaw" then
			local origPos = v.Position
			
			local TweenPos = TS:Create(v, TI, {Position = origPos})
			
			local TweenStart = TS:Create(v, TI, {CFrame = v.CFrame * CFrame.Angles(math.rad(-24),0,0)})
			TweenStart:Play()
			TweenPos:Play()
		elseif v.Name == "RightJaw" then
			local TweenStart = TS:Create(v, TI, {CFrame = v.CFrame * CFrame.Angles(math.rad(-24),0,0)})
			TweenStart:Play()
		end
	end

Is the position value a CFrame or Vector3?