Simply put a solution will not solve your desire to be a template by itself because my definition a Template is something you use to start with. Installing into other environments isnt the issue. Its having 50 developers all doing different apps and you want them to have a base is my understanding?
To make something act as a template, you have to have the ability to break its pieces apart, and rebuild them, name them and install them at RunTime.
In the past (and you still can) this would be done with GIT and GIT actions, where you would do a deployment directly from GIT.
You have to have a way to take the Solution, app or flow (depending on level of detail you want) out of the system directly from GIT, or manually export it and have GIT break down the files into recompilable components.
Example: I have Solution X with an app and 3 flows. You cannot simply re-install that it won't work.
Instead, you have to break out the Solution into its parts.
store that in GIT
Then in real-time have GIT copy those things, rename them, reconstitute them and then deploy them for you, so that now a new solution exists a new app and 3 new flows all linked together.
I believe you are asking if you can Do what I typed, even if you didn't type it technically that way :-)
Its more complicated then I am sure you would want.
Now there is an easier way if you only want to add Apps
Open the App and F12, export it.
Have people install the proper command line Tool for putting apps back together (from the export), and renaming them and importing them for you.
Or you build a process for the previous via Pipelines.
It is possible though, but its more work then simply making a solution