For Gavin's pikachu or anyone else who wants to do the same! Legit way and cheap way
for Gavins pikachu ive been looking into this for myself. IGN have a useful guide to get it to 3DS, reddit has a lot of modded 3DS help.
GBA to DS: you need a gen 3 game (ruby, sapphire, emerald) and a gen 4 game (HG/SS, diamond/pearl)
DS to 3DS: gen 4 to gen 5 (black/white/BW2) using pokemon transfer lab (post game requirement [completed save files are available for download but thats your person preference] and 2 DS consoles or just use PKSM with a single modded 3DS) - gen 5 to 3DS poketransporter in gen 5 (available after Pokedex is obtained or Gym 1 is beat) to bank/ANY 3DS Pokemon game
Bank to home: get a modded or mod a 3DS (unless you have a 3DS with pokemon bank already on it) to allow you to download pokemon bank. Modding a 3DS is very easy these days plenty of guides just need a micro SD card, reader, and laptop/computer to read and write on it. Use pokemon home premium (apparently) to transfer from bank to home and your're done!
The cheapest way is:
Modded 3ds with the DS games and/or GBA games as roms and your save from either GBA or DS (latest game you have with the pokemon on it easiest way is DS game)
You will need to rip your saves from your GBA/DS game. Ripping a save from a DS game can be done with a modded 3ds straight on the console with godmode9 homebrew app.
Use PKSM (homebrew app) to get the pokemon from your save file to gen 5 ( legal rom of course ;) ) to transporter (available after Pokedex is obtained or Gym 1 is beat) or use PKSM to skip this and put the pokemon straight to a 3DS game without the transporter (no need for any other game other than latest game you have the pokemon on and ANY 3DS Pokemon game [legal cartridge/rom of course ;) ] 3DS game to bank, bank to home and you're done.
Edited for clarity and in game requirements