Hi Jesus - that is a hard one - what I’d do here is Mesh the surface, then MeshIntersect then SplitMeshWithCurve - that does seem to get the right answer in this case.
As I understand it you wish to split the mesh using the surface. I was able to do this using the following workflow:-
Extrude the surface into a solid larger than the top half of the mesh.
Convert the resulting polysurface into a mesh (_Mesh). Hide or delete the polysurface.
You can now use this new mesh object to split your mesh using the _meshsplit command
General tip when it comes to splitting a mesh. It sometimes help to move or rotate the object before spliting.