Using TweenService to BodyGyro makes a weird rotation

Hello! I would like some help regarding my problem, I’m using TweenService to rotate the CFrame of a BodyGyro, but it doesn’t rotate a full circle and here’s a clip of it:

Here’s the script I used:

local tweenService = game:GetService("TweenService")

local properties = {
	CFrame = script.Parent.BodyGyro.CFrame * CFrame.Angles(0, math.rad(180), 0)
}

local tweenInfo = TweenInfo.new(5, Enum.EasingStyle.Circular, Enum.EasingDirection.Out, -1)
local tween = tweenService:Create(script.Parent.BodyGyro, tweenInfo, properties)

tween:Play()

Here’s also the settings for BodyGyro:

As well as for the BodyPosition (if needed):

Even modifying the P and D of the BodyGyro, the part still refuses to do a full rotation. I’m trying to make it do a full rotation.

I will appreciate any help, even insights on how to properly use TweenService and BodyGyro. Thank you!