Ok. I've got all of the tech goodies for you.
Fixing it: Connect it to any pokémon of the following products: 1) Zigzagoon bonus disc or colosseum bonus disc 2) Colosseum 3) Fr/lg.
What it is: After the game's internal inital-load clock hits 355:23:58:59, the number 356 is incorrectly initialized. What does this mean to you? 355 days after you initially start the game (meaning the first time you press 'new game', not when you first turn it on, first save the game, or first buy it.), the internal clock will stop.
What happens: No more battling trainers, no more plants, bye-bye free berries, mirage island will have no chance of appearing (unless it's there on the stop), and nothing else that relies on a date.
Why it happens: It happens because nothing was set up to happen after that. There is nothing else to it. The game does not run on a metronome, so it's all up to programming... and that's just how it was programmed.