Instancing/Duplicate Problem

I am making a scene using an aircraft I modeled (many objects). I want the scene to be several versions of the model where the paint scheme and decals of the aircraft are different, but the model itself is the same.

I made the aircraft objects into an aircraft collection and attempted making an instance of the aircraft collection, but that won’t let me change any materials/textures on the instance.

Is there a good was to have an instance/duplicate of a collection/model where you can have unique materials/textures and not have to duplicate the who model (thereby increasing memory usage)?

What is the best method to accomplish this with out having to copying the model and all it’s objects with the ability to modify the materials/textures on the instance?

I’m sure Blender has a way to do this but not sure how.