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!)

[![enter image description here][1]][1]

Select the object and then press <kbd>Alt</kbd>-<kbd>N</kbd> *> Flip*. You should find that the boolean works properly when you've corrected them.


  [1]: https://i.sstatic.net/UblUE.jpg