Fixed it. AICA_UpdateSlotReg had wrong offsets, so the LFO wasn't being set up when it was written after key-on (ditto pitch, so pitchbend was busted). Re-uploaded, same filename.
ETA: one more small update towards enabling the DSP (it's still off by default though). Also, 16-bit samples are staticy and I'm not sure why - maybe endian trouble?
ETA2: for years the entire internet has thought the ARM7 is 45 MHz, which is an odd number. The AICA's only clock input is 33.868 MHz (which the savvy will identify as 44100*768, and the same as the CPU and SPU clocks on the PSX), so I'm calling that that's actually how fast the ARM is. On a Naomi board I have here, that's indeed the speed of the oscillator connected to the AICA.