The splitting surface just needs to touch the part, you don't HAVE to create a full surface (although sometimes it seems easier). Some of the holes can be filled with Exclude Loop option. I am not sure by the picture if that will get it 100%.
If you are working with import geometry that is not "clean" that adds to the problems.
It is possible only for small model like rectangular block not for the larger component . And most of my customer getting their model in import format, then it will be big mess for them even they a have a tdo module.