You can only snap the Origin of Collection Instances.
I see this as design limitation that you have to work around. The Instance doesn't really know about its own geometry. You can however snap things to Instanced collections geometry.
Aternatively you can use linked duplicates with ALT+D, but you won't be able to one-click-select your group objects anymore unless you parent all but one objects to the last one and deactivate selection on these. But this is not always desirable.
I feel this kind of workflow is not ideal with the Blender toolset. You could try your luck in Vertex or Face Instancing with an object which you use as a parent to your instance collection.
It might help put the matter into perspective to reflect on the actual thought process behind Collections. They are not meant to be a modeling workflow, and they are more than a simple container, because objects and other collections can be part of an indefinite number of collections.
Collection Instances are a great way to reduce load on the hardware, and they can save a ton of clicks, but they definitely weren't designed to be used in an actual modeling workflow. They are great for scattering multiple instances of grouped objects, but you will have trouble actually placing individual ones precisely. I think we'll have to wait for either a big improvement in this regard or a new tool altogether.
To hide the source Collection, Click on the checkbox next to the eye icon in the outliner (top right of the screen). This will exclude this collection from the current view layer.
If you want it to disappear from the outliner altogether, right click on the source collection > Id Data > Unlink. You won't be able to modify it afterwards though (unless you're fine with the finicky process of re-linking it to the scene) so I wouldn't recommend it.
Or you can use it in another scene or another blend file and instance it in your current working scene but again this is more tedious than excluding from the view layer.