I don't know that i get away from using a micro controller on each board, as each board is required to source and read all of the inputs. Since the maximum number of MCP23017 on a single board is 8 devices, that limits the number of GPIOs to 128. We need to 160 total, thus the micro controller is there to act as the brain box and read an additional 32 pins.
I tried some shift register, however had alot of issues with them to work. i did try 47HC589.....
I do like the RS-485 idea...