I don't know if someone know how to fix the problems when do boolean.
I just found the way while I try to union a whole (actually, not whole but many ) scene together on on my commission.
All 4 objects here were scale applied, as you can see the scale of the object is 1
I'll give you the example of these one.
This is the result you may get (sure that not always) when you do boolean operation.
In order to fix it, I added the cube and scale it down so it won't affect on the mesh when it's booleaning
note that do not apply scale on this cube
Next, again, select all the objects we wan't to merge and select the scaled cube as an active obejct.
Tada! This is the result after I booleaned the handrail
It still have lot's of way that I find it's helpful to fix this problem but I think this is kinda the best one
Hope this help