Why can't I rebattle the trainers I could in Pokémon Black and White?

DeSmuME does not officially support the main series Pokemon Games:

Why can't I play Pokemon Diamond / Pearl / HeartGold / SoulSilver / Black / White? Why aren't they supported?

We are not going to support these games. Don't waste time asking, it will only make us angry. If you can't make it work, then give up and go buy the cart.
DeSmuME FAQ

While not the nicest way of putting it, it's a fair assessment. Emulators like DeSmuME are only 'pretending' to be the original DS hardware, and they may not support 100% of the games nor all the features of the DS.

It's also worth mentioning that the latest stable version of DeSmuME (as of writing) is 0.9.11 - it's still being actively worked on, and is not considered a finished product. There may still be bugs hidden away in the emulation code that are not immediately apparent but cause issues/glitches with games.

As an example - the emulator may not fully emulate the game's clock correctly, introducing errors into time-based events like the ones your seeing. Pokemon games are notorious for shutting down time events for 48 hours when they detect a change to the system clock (even for perfectly legitimate reasons like Daylight Savings changes). This functionality is built to prevent people cheating by changing the clock to speed up processes like berries growing, or trainers requesting rematches.


So what can you do?

To avoid most time-breaking issues, I would recommend not using Save states - only Save and Load using the in-game 'Save' function. Also avoid any 'fast-forward' features (if any). This should at least limit the impact of time glitches on your save game.

If the issues are still occurring after that, then you may have to look into other options such as purchasing a DS to play on (relatively cheap now in most second-hand electronics stores!), or finding another emulator that supports the Pokemon games better.