I have built a very similar use case to this with Fusion. In the one that I think works the best, we configured it like this.
1. In the request form, there were several text fields. Each text field represented the type of deliverable they wanted, and then if they wanted multiple of the same deliverable they could add it in on a new line in the text field.
2. In Fusion, we then iterated thru each of the text fields, and in the text fields converted them to an array based on each line being an entry in an array
3. Then for all of those, a new project was created for each deliverable. Templates were based on which deliverable type the project was for, as well as some other criteria within the request form.
4. On each project, we copied down the original request metadata, as well as recording which request was the original request. Final project location was also based on information provided in the request form.
The end result was multiple projects, based on multiple and/or various templates, in different locations, based on a single request. Note that we preserved the originating issue with the project on a custom field, not on the default resolving object field, as that requires a 1:1 relationship.