I calculate that you have at least 27 inputs and outputs, which is more than you have I/O pins any Arduino except a Mega. Some of the devices might be able to share an I2C bus, but the number of I/O pins will still be tight. So I suggest you get a Mega, so that you don't have to mess around with shift registers or other I/O expanders.