As per the above article, Boolean operations are just a series of automations of maual ones. So you can try manually by splitting the objects with your intersection curves, deleting the pieces not needed and joining.
What’s likely to happen is one or more of the objects will refuse to split. That will show you where the problem is. If the objects can’t be split, they can’t be Booleaned. The most likely cause of a split failing is either a bad object (or one with out of tolerance edges) or a bad split curve - which could also be self-intersecting if the surfaces have folds - as Pascal points out above . Without seeing the file it’s impossible to say.
If you Explode your object, then run RebuildEdges and then Join, I suspect you will end up with an object that has naked edges. You will need to be able to fix these in order to make the split/Boolean possible.
For 3D printing, you do not need NURBS surfaces, you need meshes. So the ‘file size’ for printing is (somewhat) independent of the Rhino file size - it will depend on your meshing parameters. You will need a mesh fine enough to print the small details, but not finer than the 3D printer’s resolution. Many 3D printer software packages include some automatic repair routines and also will accept overlapping volumes if the meshes are good.
I would use the mesh command to create the meshes inside Rhino, then check those to see if they are good, closed and look correct. Turn on flat shading to see the facetting. Then I would export the meshes as .stl for 3D printing.