The normals on your main object are all flipped. To see them, enable the checkbox on the Viewport Overlays dropdown. (Red means they're flipped!)
Select the object and then ALT-N > Flip. You should find that the boolean works properly when you've corrected them.