[Solved] A question to someone with deeper knowledge of nurbs

I know how for curves, never tried for surfaces - it’s probably similar. - as @TomTom mentioned, fitting algorithms make most sense.

it is weird though, getting placed on the XY plane

It isn’t weird, makes sense. You have 3 numbers, a point is 3 numbers. The numbers are meant for uv but you plug them to point. The point just literally interprets those numbers as a point, even though they are not meant to be a point, but the point container doesn’t know that because the format of the data is the same as format of values it needs to make a point.

Edit: Here is what you need.
http://developer.rhino3d.com/api/RhinoCommon/html/P_Rhino_Geometry_NurbsSurface_KnotsU.htm
http://developer.rhino3d.com/api/RhinoCommon/html/P_Rhino_Geometry_NurbsSurface_KnotsV.htm

NurbsSurface nurbSrf = S.ToNurbsSurface();
nurbSrf.KnotsU.InsertKnot(uParam);
nurbSrf.KnotsV.InsertKnot(vParam);