This is basic MVC (Model, View, Controller) GUI design. Which, since I am a systems programmer, not an applications programmer, is not something I'd ever heard about formally until last year, when I took an Apple University course on how to write an app for IOS. Having done so, I now understand why Swing has "models" of the data that it displays in GUI elements, and why roippi used "listeners" to update Daily Deeds, and so on. Suddenly, a lot of terminology made sense - and it became clear why objects that show a View of the Model in the GUI should provide a "listener" and update when the module handling that Model fires the change, rather than having non-GUI objects explicitly calling this-or-that GUI element to update.
A lot of KoLmafia works that way, but there are parts of it in which the "Model" code is hard-wired to call methods in the GUI code to tell them to update. And its that code for which I expect "the GUI does not update on windows that are open when changes are made". As I said, make specific bug reports about such cases, and we will fix them to use the correct technology.
I suppose somebody could make a close pass over the whole program to make sure it is all MVC correct, but that would be a big project. Not a bad project, but just way too time intensive for me, say.