Normal directions are matched prior to evaluate surface but evaluate surface and SUrface.NormalAt() returns different result. As you can see, surface at index 16 is flipped to match the base geometry, but it seems that NormalAt() returns normal vector that is not flipped.
I have tried same operation with baking the surfaces and flipping the surface manually and also tried with joining them to polysurface(which also matches face normals) but results were same.
Am I doing something wrong?
Please see attached GH.