The first job is to get the origin of the Collection Instance in the right location and orientation with respect to its component objects.
When a Collection Instance is created, all its component objects retain their World Transforms, with respect to the collection's origin (represented by an Empty). While you can move the origin of a collection using the Header > Object > Set Origin menu, it's probably least confusing to keep the Collection origin at the world origin while assembling. You can hide the source collection, and still work with its instances.
Once that's done, you can align the instance as you would any other object. (You can search for various ways besides this to do that, here on BSE)
Here, the original collection is shown at the origin, as created. In this example..
- A Custom Orientation was created from the sloping target face. (The '+' in the Orientation dropdown)
- The 3D Cursor was snapped to the face (ShiftS)
- The (wireframe) Instance was snapped to the cursor (ShiftS)
- With the instance selected, and the Custom Orientation active, Header > Object > Transform menu, 'Align to Transform Orientation'
You can align multiple instances in one move.
The Instance's local axes are shown in the gizmo.