I’m new to max, but I think the coll object is your best bet. The coll is able to save and recall anything written into it, in this case your matrix control data points (x, y, z). Sending next/previous or an integer box to coll will recall those entry points… then you would send that coll back into the monome osc object or your matrix control with the new position by subtracting/adding to the point.
You could probably tether the position of the buffer in sample rate or something to when the coll saves the grid position you’ve pressed.
Maybe that helps. I got my monome grid last week and I’m currently trying to make “lights out” work on it, I realized there was a patch for this back in 2007 but it’s gone and I like it as an exercise in learning max.