Arms shoot out in front of torso when characters walk or get animated

Hi. I am trying to get a character with long legs (upper and lower) with the rest of the body parts staying the same, except for a few adjustments like hip placement. It is going great and everything is working, but the arms don’t stay at the right place. I am able to make them relatively close by moving them with vectors, but when I walk or when animations play they shoot out away and come back, rather than staying near the torso. I have tried looking through humanoid to find something but couldn’t find anything.
Arms Shoot out when walking or animations play. - Roblox Studio (gyazo.com)

The first script is in a part that encompasses the whole map. The second one is in startercharacterscripts. Both work relatively well, but I am not sure how to make the arms stay by the sides.

local button = script.Parent


button.Touched:Connect(function(hit)
	local humanoid = hit.Parent:FindFirstChildWhichIsA('Humanoid')
	if humanoid then
		if humanoid.HipHeight > 10 then
				local body = hit.Parent
				humanoid.WalkSpeed = humanoid.WalkSpeed*2
				humanoid.JumpHeight = humanoid.JumpHeight*2
				body.LowerTorso.Size = body.LowerTorso.OriginalSize.Value
				body.LeftFoot.Size = body.LeftFoot.OriginalSize.Value
				body.LeftHand.Size = body.LeftHand.OriginalSize.Value
				body.LeftLowerArm.Size = body.LeftLowerArm.OriginalSize.Value
				body.LeftUpperArm.Size = body.LeftUpperArm.OriginalSize.Value
				body.RightFoot.Size = body.RightFoot.OriginalSize.Value
				body.RightHand.Size = body.RightHand.OriginalSize.Value
				body.RightLowerArm.Size = body.RightLowerArm.OriginalSize.Value
				body.RightUpperArm.Size = body.RightUpperArm.OriginalSize.Value
				body.UpperTorso.Size = body.UpperTorso.OriginalSize.Value
				body.Head.Size = body.Head.OriginalSize.Value
				body.HumanoidRootPart.Size = body.HumanoidRootPart.OriginalSize.Value
				body.UpperTorso.Position = body.LowerTorso.Position + Vector3.new(0, body.UpperTorso.Size.Y/2, 0)
				body.Head.Position = body.UpperTorso.Position + Vector3.new(-body.Head.Size.X/15, body.Head.Size.Y + body.Head.Size.Y/3, body.Head.Size.Z/3)
				body.LeftUpperArm.Position = body.UpperTorso.Position + Vector3.new(-body.LeftUpperArm.Size.X/2, body.LeftUpperArm.Size.Y/5, -body.LeftUpperArm.Size.Z/2)
				body.LeftLowerArm.Position = body.LeftUpperArm.Position + Vector3.new(0, -body.LeftLowerArm.Size.Y/1.5, body.LeftLowerArm.Size.Z)
				body.LeftHand.Position = body.LeftLowerArm.Position + Vector3.new(0, -body.LeftHand.Size.Y*2, 0)
				body.RightUpperArm.Position = body.LeftUpperArm.Position + Vector3.new(body.RightUpperArm.Size.X*1.5, 0, -body.RightUpperArm.Size.Z/2)
				body.RightLowerArm.Position = body.LeftLowerArm.Position + Vector3.new(body.RightLowerArm.Size.X*1.5, 0, body.RightLowerArm.Size.Z/1.5)
				body.RightHand.Position = body.RightLowerArm.Position + Vector3.new(0, -body.RightHand.Size.Y*2, 0)
				body.HumanoidRootPart.Position = body.HumanoidRootPart.Position + Vector3.new(0, -4.5, 0)
				body.Animate.ScaleDampeningPercent.Value = 2.5
				humanoid.HipHeight = 10
		end
	end
end)
local humanoid = script.Parent.Humanoid
local person = script.Parent

humanoid.BodyHeightScale.Value = humanoid.BodyHeightScale.Value*6

Hopefully you can find the solution, because it would make the game much better and help me a lot!

EDIT: Turns out it doesn’t work as well as expected, so it is more urgent. When I test with 4 players the first one works like mentioned above, but the other 3 don’t even take into account anything after the resizing, which is odd because there is no error in output, so I really need a way to fix it.