Convert a polygon mesh into a b-spline surface
Without any assumptions on the input mesh, you cannot in general get a single b-spline surface that replicates an arbitrary polygon mesh. You would need the mesh to be connected, but you would also need some fairly significant assumptions about the mesh topology. At the very least, you would want the input mesh to be manifold. (It might be possible to contrive a method for creating a single b-spline that exactly matches an arbitrary polygon mesh except on a set of measure zero, but in many cases the spline would have to be extremely degenerate and overlap with itself in strange ways.)

On the other hand, if you are allowed to use multiple disconnected b-spline surfaces in the output, then the problem is easy.

A degree-1 b-spline surface with a 2x2 control point matrix and no internal knots is just a quadrilateral with bilinear interpolation in the interior. In particular, if you set two adjacent control points to the same location in 3D space, you get a triangle. (c.f. Bézier triangle)

Any polygon mesh can be subdivided into a triangle mesh through well-known methods. Once you have done that, you can just separately convert each triangle into a 2x2 b-spline surface.