Ok so hanging out in the collaboratorium turned out to be profitable - @Blecky prodded me until I figured out my problem with i2c. One of the MCP23017's had its SDA/SCL lines swapped, so every time I 'fixed' one, the other failed. Also, the RPi has pullups, so the pullups I added were not helping things.
After my i2c woes were sorted, I was able to successfully fire some igniters, whoo! 300ms is a bit short, I had to run the sequence a couple times to get them all to fire, so I'll use 600ms, and just write some code for firing groups simultaneously. Now it's time to make a bunch more cables.