Zend certified PHP/Magento developer

Mail merge BUT body is like address label merge (multiple spreadsheet rows per output) while header and end act like regular mail merge (1 row per…) [migrated]

The header and end of the template need to operate like mail merge, one set of data per document, while the central body of the template needs to operate like address-label-mail-merge, one row per section.

The header content would be for example:
Course name
Date
Class #
Location

The body would consist of several sections, for example: welcome; warm-up; barre work; centre work; across-the-floor; routine; cool-down; farewell, each having multiple specifications about time, music, learning goals, etc etc.

The end content would be: Choreography [just a text box is okay]

I could enter the header and end content manually after generating the body output.
If I do that, I still encounter a technical problem:
I tried two address-label mail merge add-ons to Google, but they both are only usable with actual addresses – they can’t be adapted so that, for example, a complex section can take 12 lines of description. Is there a more flexible way to generate multiple address-label-like text boxes?

Since I have 40+ versions I’d rather not enter the header and end data manually. I want to get the data from the spreadsheet where the other data is. Can that be done using functions built into Google Sheets and Google Docs? If not, can it be done with other software’s built-in functions? Or is there a free-to-use add-on that can integrate into Google Sheets&Docs? Or, is there a programmable solution?