I have a model I imported from Source Filmmaker that I want to remove double vertices from. Normally I just select all vertices and merge by distance, but this particular models changes in geometry when I merge the vertices. Here are some pictures to show what I mean:
Merge by distance is not something you can do without thinking. It does what it says, and only what it says: if any vertices are closer than the distance you specify in the operator panel, it merges all close vertices at their median point. This can catch more vertices than you intend-- with some meshes, even with a distance of 0.
If you want to use merge by distance more judiciously, try selecting mesh borders that should join, then merging only those; then repeat with different mesh borders. "Select non manifold" is a useful operation for finding mesh boundaries.