As mentioned in the wiki page for Templates: Template projects are just repository, so these projects cannot be created in productive systems when the system is locked for changes.
This happens because Template projects are special. As soon as a template project has a transportable package assigned (in SOLAR_PROJECT_ADMIN -> tab 'transport requests') the structure
nodes have a tadir entry and therefor are repository objects.
So in this case you need to allow changes to repository objects.
Templates are also repository objects, because in general they are supposed to be translated or transported. Being a repository object means that the object is controlled by the transport infrastructure, which checks transportability - and the system change options.
Working with templates requires the system being changeable for the software layer which is represented by the package you want to use.
"$TMP" means that software component LOCAL "Local Developments (No Automatic Transport)" must be modifiable.
All other software components can be set to "Not Modifiable; Not Enhanceable".
Depending on your scope, you can protect your system against potential unintended program changes by reducing the authorization of the users accordingly.
Regarding the way the Template Projects deal with the Transports can be seen in the help page.
The only way to have your templates available in the productive system is following one of the possible options:
1) Open your productive system for changes.
2) Transport it from your development system as explained in the help page.
For further detailed information, please check the note 1605663 - System change option settings for projects.