Ok, I think your problem is that you do NOT have a solid when you do the subtract.
I used the surface and then blended the bottom edges (2 opposite edges, 0 Bulge),
then I did the same with the front and back openings.
Now Union the the thing and you get a solid from the which you can Boolean whatever you want...

|