If I'm understanding your question correctly, I think your best bet would be to go through tokens.
We do something similar where we establish the name of the asset as a token at the program-level. Then we will use the token to reference the asset name throughout the program -- this could be a hidden value in the form, it could be in your flow step, it could be in your transactional emails, it could be in your alerts to sales, etc. You just need to write it somewhere once!
With this in place, you wouldn't need to necessarily build all new forms for each program -- you would just need to make sure that you have a token in all programs you build moving forward, with a generic enough default in case a user forgets to put something in. (We also use master forms, and I think this is a good practice.)
Hope that helps.