I’m always interested to know why things don’t work… 
And one of the problems is the mesh you started with.
_Check
General information about this mesh:
Mesh has 1 non manifold edge.
Mesh has 1 duplicate face.
Skipping face direction check because of positive non manifold edge count.
Mesh has 14 pairs of faces that intersect each other.
This can cause problems if you’re doing mesh boolean operations with it.
Mesh has 909 naked edges. Naked edges can cause problems if the ultimate goal is STL output.
Mesh has 12 faces where the face normal differs substantially from the vertex normals.
These normals can cause problems if the ultimate goal is for rendering or boolean purposes.
Mesh does not have any degenerate faces.
Mesh does not have any ngons.
Mesh does not have any extremely short edges.
Mesh has 10 disjoint pieces.
Mesh does not have any unused vertices.
My first attempt was to split the mesh into disjoint pieces.
_SplitDisjointMesh
Split 1 mesh into 10 meshes
Voilà
1 open mesh added to selection.
Converted this into a SubD
I can stitch the two vertices.
What’s your expected benefit of turning this mesh into a SubD?
You’re hoing to spend quite some time fixing boundary issues…
In this situation Quad Remesh isn’t a good solution to rebuild the mesh and convert to Nurbs later on.
Here’s a solution using Grasshopper:
Since your mesh sort of has 4 boundaries, you can project the boundary onto a plane, split into 4 segments, rebuild the curves and create an Edge Surface.
The surface can be meshed with nice quads using the Mesh Surface component.
You can get the mesh parameter of the closest point of the nice mesh vertices on a planar representation of your not so nice mesh.
Evaluate the not so nice mesh at the parameters found on the planar representation mesh.
Construct mesh, done.
remesh_mrtn.gh (1.9 MB)