Its not clear to me why you need the table LabelSet. You can create multiple layouts for each table.
You can do it either way. You can use an addresses table with something recognizable (name / address) and use a pull-down or popup with lookups to all the relevant fields, or you can create a popover that has a portal in it. The portal would point to a Virtual List holding a list of available addresses, then script everything. The former is easier, but has some constraints (pull-down means the key field is exposed; popup menus don't work so well with lots of records). The latter is harder to code, but vastly more flexible.
The import thing to note here is that what happens when the user presses the Print button, it will print all the labels specified in the label set so you don't have to print two of this label, then one of this label, then 4 of this label. Sometimes, you have to print as many as 20 labels for a single tax return. This allows you to create a set for just that client and change it very quickly, then print them all at once.
I never thought of a popover, but I think the first option you suggested would be the easiest and at this point, I need to get it done.
Thanks for the suggestions.