I believe the issue is caused by not GetTouchingParts but instead by this operation:
Why? It is known that :SetPrimaryPartCFrame isn’t exactly accurate due to floating point errors from this post.
Consequently, it’s possible that the model is slightly levitating above the ground with a stud difference of 0.0000001 due to the aformentioned floating point error. To solve this maybe just move the model a bit more downwards I guess?