Hay que hacer ambas cosas. GetBaseData tiene que recibir como parametro adicional el numero de tabla y cargar los datos de un pokemon de una tabla o de la otra en funcion de ese parametro. Pero cada caso es diferente y tiene que manejarse de forma diferente. Es decir, en un caso estaremos tratando con pokemon en el equipo, o en la caja, o en combate, o en la guarderia, o cualquier otra cosa que se te ocurra, y en cada caso tablenumber se saca de una direccion ram diferente por lo que no se puede hacer de forma generica modificando tan solo getbasedata. Lo que hay que hacer es modifcar todas esas rutinas para que cada actualize tablenumber a su manera.
Si revisas las 5 rutinas que ya he modificado, veras a lo que me refiero