Removing internal surfaces from overlapping spheres
In the end, I didn't end up going with a blender solution at all. I tried to implement the solution @batFINGER suggested, but my model wasn't properly formatted; the spheres in my model were not separate objects. When I tried to separate all the spheres into separate shells, blender crashed on me.

What did work for me was to load my object into Meshmixer and using Edit > Make Solid. Doing this created a solid object, filling in the entire shape. Using 'Preserve sharp edges' mode and maximizing 'Solid Accuracy' and 'Mesh Density' prevented too much detail from being lost. After this, I used Edit > Hollow. The final result was a shell containing only the visible surfaces of the overlapping spheres.