If I understand what people are saying, then using the Everdrive, Pokemon can transfer to the DS correctly, but the DS cannot tell that a specific GBA game is being used. I find this very odd. In order to transfer Pokemon, the DS has to recognize that a Pokemon game is there, and see the save file in the place that it expects to see the save file. This seems to inherently require that the DS know what GBA game is there. How would it even make sense for the DS to not know what GBA game is there, yet still be able to transfer Pokemon from the GBA game that it doesn't know is there?
Detecting a GBA game and transferring Pokemon are two sides of the same coin: you have to be able to put the Everdrive in such a state that to the DS--which is out of your control--the Everdrive looks like a real GBA cart. This means that you have to have a way to select a game using a menu, load the game, and have it and its save file stay there as if it is a standard ROM and standard flash RAM, with the menu undetectable from the outside until you boot the Everdrive again.
The same applies to transferring to Gamecube, which is why I asked. The Gamecube downloads a small program to the GBA. This program is not under the Everdrive's control (unless somehow the Everdrive can detect and patch it), and tries to read the Everdrive as if it is a normal GBA with a normal ROM and save. If the Everdrive doesn't look exactly like a normal GBA cart including the save, this will fail.
That's why the EZ Flash IV can't transfer Pokemon to DS or Gamecube--transfering Pokemon is an edge case where the ability of the cart to act like a real one is most important.