Yeah, sorry about that. I just read it again and the explanation is pretty lazy.
So after I made the hole shape using the top poly loops of two cylinders, deleting the overlapping sections and joining the two pieces together using Zmodeler bridge two edges. I would position this subtool over the two spheres I made earlier and when I am happy with the position I use Subtool>Project>ProjectAll on the Tool pallet to make this shape follow the surface of the spheres (making any adjustments needed and re projecting).
If I want the hole to go through to the other side of the spheres I need to duplicate the hole and project it on the opposite side using the same method. Now I have two sets of poly loops with the same number of polygons which makes using Zmodeler>Edges>Bridge>Two Holes to create the inner surface of the hole.
After that I used Masking and Polygroups to hide the polygons that cover the hole on the two spheres (a lot of back and forth between hiding/unhiding of polygons while holding CTRL+SHIFT using SelectRectangle). Now I can Del Hidden and Merge my subtools so I can either Dynamesh or Remesh to combine these individual pieces into one single mesh.
Hope that makes more sense