You could use a Google Form or an Apps Script Web App for the user input.
And instead of making lots of copies of spreadsheets, I'd create PDF files.
So right now you're using the Spreadsheet for the input form, the receipt, and data storage.
Use an input form for the input form, a PDF for the receipt and the spreadsheet to store the data.
If the Sheet is more than just an input form, but like an app, then a Google Form can't provide feedback depending upon user choices.
But a Web App can do that.
You can trigger your code to run from an:
On Form Submit Trigger
That trigger runs whenever the Google Sheet detects that it has received a new row from the Google Sheet.
If you don't want to create the PDF file, then you can omit that part, but still use the Google Form.
If you want more control, then you can develop a Web App for input.
You probably don't need to publish an add-on.
The user can use the Google Form without needing to copy any code or expose the code to users.
If there is an Apps Script project bound to the Sheet, and you make a copy of the Sheet, then the code gets copied also.
But, every copy of the code needs to be authorized.
It's not central code running from one place for different documents.
If your users must run code inside the Sheet, then maybe you'd want an add-on.
Are you using the Sheet to be a User Interface that provides feedback to the user?