Best not to boolean with any other modifiers in the stack, at all.
I'd suggest either applying modifiers, or removing them, then setting up/applying the boolean. If the unmodified geometry looks good, try subsurf. It that brings back the weirdness, it means you've got an n-gon problem. Subsurf doth not like polygons that have anything but 4 sides.
You can try applying a remesh modifier, which tries to recreate your geometry using only quads.
Remesh?