Avoiding false rising and falling edge when using demultiplexer
To do multiplexing with bounce.h you will need one bounce object per button. That's 64 bounce objects for an 8x8 matrix.

Then you only want to update the bounce objects for the group you currently have active.

That is:


Switch to group 1.
Update objects 1-8
Switch to group 2
Update objects 9-16
... etc ...


You need one object per button so that the internal data can track the state of that specific button, and you only update the 8 objects for the currently selected group otherwise the objects that aren't associated with that group will get confused by incorrect data.