As Pascal suggests, there are probably better tools than Rhino for this, but it is do-able if you have to use Rhino.
I would suggest creating a display mode which shows mesh edges, but not mesh wirefame:
Here would be my general workflow. testpieces_SP.3dm (2.7 MB)
Basically, I unweld and weld the mesh until I find a weld angle that shows edges mostly were I would want it to split apart (your mesh actually had pretty good setting to start with). There will be a few areas were I used UnweldEdge to get edges were the weld settings didn’t get them. I then exploded the mesh, and picked the stuff I wanted, and threw out the rest. Join back the result.
In some areas I then used PatchSingleFace to help create closed areas where it would be easy for FillMeshHoles to fill in for me. When PatchSingleFace-ing, I like using a display mode that shows all wires, as it makes it easier to see where to make my picks. Once PatchSingleFace -ed and FillMeshHoles, I look for problems. On your model there were a few areas were FillMeshHoles made some non-manifold mesh edges, so I pulled those out using ExtractNonManifoldMeshEdges, then went back and filled the result with FillMeshHole (no ‘s’ on the end will let you pick a single hole).
There are also some areas were mesh faces fold back on them selves (the areas were you have a random edge in the middle of a smooth area, easiest to see in a display mode where only mesh edges are shown). For those guys I used extractMeshFaces and pulled out some of the faces around the problem area, looking for the problem faces, then fill with FillMeshHoles. When you find a problem area, I find it easier to find and extract the face that is causing problems in a display mode that shows all mesh wires.
It is a pain, but works in a pinch.