Thanks for more reports. I think maybe those two things are related - that something goes wrong when EE removes entries from the array - which it does whenever you load a savegame. EE then goes through the stored merchant data and removes the ones which haven't been visited within the reset timer. This is done both in order to reset merchant gold, but also with the intention of avoiding savegame bloat. But I start to think there's something wrong here - either because I have misunderstood something about OBSE arrays, or because the OBSE array functionality still has some problems when calling ar_Erase with an index in the middle of the array. There was a major error in a earlier OBSEv18 version, but is supposed to be fixed in v18b4. Anyway, I will try to test and look for problems with this myself this evening.
DWS: have you saved and then loaded a savegame between this time and the previous time you traded with those merchants, and is it possible that some other merchants have been completely reset in the meantime?