thats it so far.
4 bit DIP's for addresses on the boards with processors,
You could probably eliminate the DIP switches on the boards that have processors by having some sort of protocol to "set your I2C address" (which would then be remembered in EEPROM). (eg. do a broadcast to address 0 telling chip x to set its I2C address to Y).
Just thinking... PLC's get their module address based on the position they are on the backplane.