When I map to surface a curve created on an unrolled surface and then map back to the surface, it does not map correctly, 2 edges of the mapped curve should be parallel to the edges and are not parallel when mapped back up.
To unroll the surface I have to set the tolerance to 0.1.
I have noticed I get the issue when working directly in Rhino with unrollsrfUV, but if I use squish and squish back in Rhino, the results are correct.
Your surface is double-curved.
Generally, “unrolling a double-curved surface” is something that will create deformations.
Rhino Unroller warn about this, and suggest to use the “Smash” command with a double-curved surface, which give similar results of Unroller with big relative tolerance.
So, what you are asking is “how can I map correctly a flat curve from a flat surface to a double-curved surface?”. You can’t.
You will lose accuracy/precision/detail somewhere.
Look at your “unrolled” surface: it lost all the details along one direction (see the control points).
Map to surface component is doing his job correctly.
It’s your unrolled surface that is not good for your problem.
This is an approach to rebuild your surface into a developable one, doing the mapping, then pulling the resulting curve to the original surface