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 press Alt-N > Flip. You should find that the boolean works properly when you've corrected them.