I found a way to make multiple instances of Lower Thirds work properly and all input fields are saved for all instances and loaded correctly when OBS restarts. As I mentioned before, that's a bit of an oversight in the way the OBS browser handles LocalStorage data from different locally stored custom browser docks so that same variable names used in different docks will overwrite each other. A quick solution is to add a unique protector string for each dock to its variable names before they are written to LocalStorage. In the case of Lower Thrids, this is relatively simple to do.
Here are the steps to create correctly functioning multiple instances of Lower Thirds (valid for Version 1.4):
1. Copy and rename browser-source.html and control-panel.html (e.g. add _A, _B, _C to the file names).
2. In the copied browser-source.html, search for these 4 lines:
var receiveChannel = 'obs-lower-thirds-preview';
var receiveChannel = 'obs-lower-thirds-channel';
var bcr = new BroadcastChannel('obs-lower-thirds-channel2');
var bcf = new BroadcastChannel('obs-lower-thirds-fonts');
and add a suffix to each channel name, i.e. the string inside the single quotes. For example, 'obs-lower-thirds-preview_A', 'obs-lower-thirds-channel_A' etc. The suffix can be the same for all 4 channel names but must be unique for each copy of the file (e.g. use suffix _B for the next copy etc.).
3. In the copied control-panel.html, search for these 4 lines:
var bc = new BroadcastChannel('obs-lower-thirds-channel');
var bcr = new BroadcastChannel('obs-lower-thirds-channel2');
var bcp = new BroadcastChannel('obs-lower-thirds-preview');
var bcf = new BroadcastChannel('obs-lower-thirds-fonts');
and add a suffix to each channel name, i.e. the string inside the single quotes. For example, 'obs-lower-thirds-preview_A', 'obs-lower-thirds-channel_A' etc. The 4 channel names with suffix must be identical to their counterparts in the corresponding copy of browser-source.html!
4. In the copied control-panel.html, search and replace these strings (all occurences!):
Search string #1: localStorage.getItem(id)
Replace string #1: localStorage.getItem('LowerThirdsA_'+id)
(6 replacements)
Search string #2: localStorage.setItem(id, value)
Replace string #2: localStorage.setItem('LowerThirdsA_'+id, value)
(7 replacements)
The prefix string (here 'LowerThirdsA_') is up to your choice. It must be the same for both replacements within the file but must be unique for each copy of the file (e.g. use 'LowerThirdsB_' for the next copy).
Now you can load the copied and edited html files as custom browser dock and browser source, respectively, and the settings in all loaded copies will be preserved after OBS restarts.
A temporary hack to export/import settings would be to backup/restore the localDB database of the OBS browser. Simply backup the entire folder \AppData\Roaming\obs-studio\plugin_config\obs-browser\Local Storage\leveldb after you made your Lower Thirds settings and closed (!) OBS, and restore the folder contents (while OBS is closed) if you want to restore the settings. Warning: If you use the OBS browser for other tools (browser sources or custom browser docks) which make use of the LocalStorage database, all their settings are contained in that folder as well and will be backuped/restored along with the Lower Thirds settings if you do that.