Hi amps-n,
I can see an error in your sketch. When the loop counter "column" is greater than zero, the code will attempt to read columns from the array that do not exist. There is no need for this inner for-loop that I can see. In fact I see no need for the array either. It contains only a binary count. You can get the settings for each of the select pins by using bitRead() on the "row" loop counter.
Also I don't understand why you need an Arduino pin for the enable pins on the multiplexors. You could connect the enable pins to gnd. Is this for future expansion?
Paul