This is weird. I get that behavior too, at least in when I close WinBoard (with Save Settings on Exit on), and start it again. When I just click Edit Engine List in the same run it does see all the changes.
So it seems a genuine bug. But before you were able to delete engines from the list, and that change did stick, right? (And that would be what makes it weird.)
I will look into it; there was a major change in this area. Rather than always saving the engine list as the value of a (multi-line) string option -firstChessProgramNames in the user settings file, I added a new option -engineList which can specify a filename, and in the AA package was preconfigured to specify %APPDATA%\wb_engines.dat . This is kind of a special user settings file (similar to the -settingsFile option), which only contains the -firstChessProgramNames, and treats every other option as 'volatile'. This was done to make it easier to upgrade to share the engine list between different versions of WinBoard that would need different values for the other settings. But apparently the engine list is not always saved in this file.
(It has always been a problem to upgrade to newer versions that need different values for existing options. In the AA package this was extra relevant, because I wanted to change the value of -adapterCommand to refer to UCI2WB instead of Polyglot. If I let WInBoard-AA use the same user settings file as the previous version, they would keep using the obsolete values for these options. Unless I define the new values in the master settings file after the specification of the user settings file, but then later changes of them by the user would not be persistent anymore, and it would effectively have become a volatile option. Specifying an entirely new user settings file would lose the user his engine list, which could be very much work to recover from.
A kludgy solution that I have used before is to give every WinBoard version a user settings file with a different name, and then read alluser files of previous versions as well, so that the most recent (that for the version itself, after it has been run once) would overrule any earlier. In the master settings file this would require something like
/settingsFile=%APPDATA%\winboard.ini
/settingsFile=%APPDATA%\winboard470.ini
/settingsFile=%APPDATA%\winboard480.ini
/adapterCommand={UCI2WB "%fcp" "%fd"}
/settingsFile=%APPDATA%\winboard490.ini
/saveSettingsFile=%APPDATA%\winboard490.ini
But that leads to a proliferation of settings files, in the long run.)
P.S. For now you can just set /engineList="" at the bottom the master winboard.ini file (in the same folder as winboard.exe) to disable this feature, and use the engine list in the user settings file (which should be saved with all other settings as always).