Ah good catch, maybe its more than just a rounding issue as well since I see this in your code
Since you are using SetPrimaryPartCFrame, I recognize that this method of rotating the model is real buggy, due to floating point issues as you have discovered.
I remember there was a community resource which solves this problem but I can’t seem to find it now maybe later if so I’ll edit it.