Thing is, it's such a mess I don't know where to begin...
AO's AICA more or less worked without AEG in it at first - and that is the root of all evil. Don't take me wrong - my own code was like that too, once. In short: if you can key on/off channels and set volume without emulating AEG, it's a hack.
Only when I added AEG to my code I could finally make it behave like the hardware would. But that was a big move, one I call a rewrite. Definitely not a "fix".
You should start with Corlett's document on AICA. The perfect timings on AEG are a nice touch, but not required. You can go with the values from SEGA docs too and noone would be the wiser. I you really want perfect timing that's another level of difficulty.
If you want I can provide you with my AICA sources. Though this time only for reference and not to be directly included into any open source project. And don't go thinking it'd be piece of cake to figure it out just because you got the ARM7 core running