>> The problem is that I also want to have different sets of bookmarks
>> and settings depending on domain (for example, work, school, banking,
>> etc.). Since I want persistent bookmarks and settings, I assume I need
>> to use an AppVM (one per domain) instead of a DispVM, but then I can't
>> get a shared set of add-ons, since it's not recommended to configure
>> anything in a TemplateVM (what AppVMs are based on).
>>
>> What are my options for my use case (Firefox add-ons shared among VMs
>> and separate bookmarks and settings per domain)?
Here is what i have done, not perfect but might help:
i have started a vm as soon as i have installed Qubes (at this point
every vm has equal level of trust, in your case use a trusted one).
set up all the firefox settings: instal addons, clear bookmarks, change
settings...
After i copied the whole firefox profile in each vm so that in each vm
that need firefox you have a good base settings.
In the end i have fixed minor things like installing flash only in
untrasted domain. adding the bookmark of bank in banking.
As far as i know the only way is to set up every vm manually, but as i
said you can start from a good level of personalization and tweek only
minor settings.
you can have bookmarks and custom settings also in dispvm (at least in
3.2, i haven't installed 4 yet)
https://www.qubes-os.org/doc/dispvm-customization/