Is it possible to create a main-assembly with a 100% version of a Program, and then use only a part of it?

(for example to create a program for a system with 5 pump-stations and 2 central pumps, but then use the same for a program with only 3 pump-stations and 1 main pump without creating a new main assembly?)

One assembly with the max-system, is not the way we suggest, and not the way VIGO6 is intended. It’s better with small building-block, which are put together to match the single system.

Let’s say you have 2 different systems; the two variants you have described.
Create a main-assembly with 3 pump-stations and one main pump. Create the necessary visualizations for it. Add this visualization to the display(s) in the main-assembly.
If it is possible ‘just’ to add 2 extra pump-stations and 1 main pump, without any other changes, an idea is just to make a decedent of the first main-assembly and in here just add the extra 2 pump-stations and 1 main-pump. In case it visualization is made in a way, so these new thing is just extra pages on a swipe-view, you can just create a dependent of the first visualization and add the extra pages.

This approach though requires that view is not added to the Display before you make another descendent of each main-assembly and use these in the projects.