Por ultimo, me estoy dando cuenta ahora que lo que te dije del getopponentitem solo cubre el caso del item rival. Deja esa parte tal cual, pero lo primero que debes hacer nada mas comprobar hbattleturn es, en caso de ser 01, llamar a getuseritem (crystal 37db2) para que sobreescriba el item en hl. En caso de ser 00, ya tienes el item del rival en hl, por lo que no haces nada mas respecto a eso.
Deberias comprobar todas las direcciones ram para gold ya que la mayoria son diferentes... Puedes buscar rutinas que utilizen una ram address que quieras en pokecrystal, irte a esa rutina en gold y ver cual es la ram address que se utiliza (ej en battle/core.asm: 3c8e4, para hbattleturn, puedes buscar en hex editor en gold ld a,[NN] + xor 1 + ld [NN], a + ret)
Aunque es posible que haya gente que tenga informacion sobre las direcciones ram en gold y pueda ayudarte o incluso puede que haya un gold ram map bien completo en algun sitio (el gold ram map de datacrystal no creo que te sirva ...)