Okay, so I created an anti-patch for JPAN's hack in order to completely remove it. Then, I repatched and it worked fine. I know that this corrupts some of your data because you had things stored there. This was merely a test to see if I could get it working. After thinking for a bit, I realized what went wrong. When I said the ASM was placed at 0xA00000, I meant that the ASM started there. However, there were multiple routines at that location, one right after the other. I'm not 100% sure which routines were where, but I know that they were all at that offset, but with different starting pointers.
I'd say, let's repoint the data that you had at 0xA00000 originaly, then apply the anti-patch, and then the standard patch. This will be much easier then trying to move ASM around.