Probably, the most instructive advice would be to register all encountered issues in the bugtracker here: https://tracker.dev.opencascade.org/
Few hints on using the Boolean tools of OpenCascade are as follows (I hope other experienced users will add something):
1. Assure that you maximize faces and edges after each Boolean operation. It is not done automatically, so after the series of cuts, you may end up with inadequate topology on your B-Reps. Many [redundant] topological constraints is a bad luck for Booleans: robustness of the algorithm clearly depends on the number of edges and faces. Few days ago there was a report on Boolean failure on highly faceted polyhedra (https://www.opencascade.com/content/brepalgoapicut-wrong-cut-result), which is an illustrative example (and misuse of the algorithm at the same time). You'd better use ShapeUpgrade_UnifySameDomain utility to prepare your operands for the subsequent operations.
2. Sometimes intersection check fails because of facets (triangulation) which sit in your model. This may happen because the bounding boxes are be built on triangulation (if it exists), and sometimes the triangulation is too coarse. You can do an experiment by running Booleans on operands without Poly_Triangulation inside your faces, and check if it improves anything in your test cases. Notice that without facets the Booleans will work slower, but we speak about precision, not about efficiency.
3. Make sure that the tolerances of your shapes are Ok, and your shapes are valid in terms of basic "checkshape" Draw command (do you use Draw?). Notice that Boolean algorithm uses its own checklist for assessing the shape quality, but it is generally enough to assure that basic "checkshape" holds. If your shapes are Ok both in terms of the tolerances and the "checkshape" command, then you have all arguments to register an issue in the bugtracker. Basically, the most tricky situation for any geometric modeling algorithm is then your shapes are not in "general position", i.e. you have a tangency or an overlapping situation.
Generally speaking, the Boolean algorithm of OpenCascade is not bad at all. Just note, please, that it is open source, and your contribution with use cases will help to improve it further.