Either option can be made to work and much depends on what you want to do with this data after it is recorded before one option clearly is the better option than the other.
My best guess is that the data for all four domains should be recorded in the same table, with a "domain" field used to distinguish Domain 1 data from Domain 2 data and so on. Such a Domain field could be used with portal filters or as an added match field to limit each domain portal to records from just one Domain.
Okay, I'm stuck after trying a few times to get this to work via a portal. How do I "push" the data into the child table (which, aside from the requisite ID fields, contains three fields to record the users' entries: Data (used to store the numerical value entered in a box), HeadingNumber (1a, 1b, 1c, etc.) and DomainNumber which is a calc field that automatically inserts the Domain number based on the Heading number. Do I assign a script trigger (OnObjectModify?) on the Data box so it auto-enters the correct HeadingNumber into a new record, or...?
TIA for your assistance!
One option is to use a script that generates the portal records each time you create a new parent record on this layout. That's the easiest to explain.
I've also been able to set this up so that the values listed in the portal come from a different table than the responses recorded. This requires a more complex relationship and some scripting to set up a match field that "reaches through" the table of response labels to the table of response data so that response data records link to a specific response label record and also to a specific parent record on the layout shown in your first post.