Split a mesh with a plane
For the bit about them disappearing when you use a modifier, this is fairly simple enough, just duplicate the object and change the modifier Operation on one of them to Difference and on the other, set it to Intersect and target them at the same object that you want to use and split the other.

You should now have two separate objects and still be able to modify them via their unique boolean modifier, when you are satisfied, simply apply the modifier and separate them.

In the image below, I have two separate objects but each has a boolean modifier with the same target which is the plane (I have set its draw type to Bounds so the objects can be seen easier). I have also applied the boolean modifier to the top piece so I am able to separate it from the rest of the object.