Just the scale needs to be fixed then. That could come from the Model (Scale property) or from a bone, if the model has bones. You need to undo this scale before the transform that sets the rotation and position. Try multiplying the vertex position (what comes from editableMesh:GetPosition(verId)
) by 0.2 just to see if it stays lined up. Then you just have to figure out what the actual number is.
I.e. you could do this:
...
local scale = 0.2
part.Position = LocalToWorldPosition(editableMesh:GetPosition(verId) * scale, mesh.Position)
...