I've been trying all sorts of things with this file using Rhino, Meshmixer, 3D Reshaper and a few others. The nearest I've managed to get is a file that is 'watertight', but it also isn't. There's still issues doing the final booleans to merge everything together, and even then, there's still tiny gaps through the model that prevent the use of a boolean operation to fill in the big gaps underneath.

The only solution I see to make it properly suitable for 3D printing is to recreate the surfaces manually in a solid modelling program (I'd use Rhino). The other option would be a very good shrinkwrap routine, but I haven't found one of them yet.