Using homebrew such as
svdt or
JKSV, you can extract save files from games on your system. When doing this with a GB(C) game, you'll get a .dat file, most likely sav.dat, which is actually identical to the .sav save file used by most emulators. Hence, by renaming an emulator save to sav.dat and injecting with the homebrew back into the system, you can get your emulator save files into VC games. You need to make sure that the Secure Value is overwritten when injecting the save back; I'm pretty sure that JKSV does this automatically, but svdt asks you to do it, so make sure you say yes.
This only works with GB/C games, and I'm not even sure if it works with all of them.
So the steps are:
1. Use svdt or JKSV to extract your VC game's save file (backup this file, along with the secure value, if there is one).
2. Get a save file from the same game that you've ben playing via an emulator.
3. Rename this file to the same as the file that was extracted from the VC game (most often sav.dat)
4. Make sure this file has the exact same file size as the extracted sav.dat (I know for Pokémon RBY it should be 32,768 bytes).
5. Put the emulator sav.dat in the same location where the extracted original was.
6. Run svdt or JKSV and inject the emulator save file into the VC game, making sure the secure value is overwritten.
Hopefully this works for you. I've only done this with the VC Pokémon games, but it worked fine for me. Just make sure you rewrite the secure value, otherwise your save will be deemed unreadable by the VC game.
Edit: I should note that I've never used GameYob or any other 3DS emulators, so I don't know how they handle save files. Assuming it's the same as most PC emulators like BGB, you should be fine.