So each trigger would say, change the value of the coordinates of what square the player is in, and go through all the entites in the level (ent_next-- skip the player though) and if their given coordinates are equal to the current square, reset INVISIBLE|PASSABLE, otherwise set INVISIBLE|PASSABLE.
For entities you want to appear in every square, maybe set their grid square to a fractional value, and tell the trigger functions that if they encounter a fractional value to skip to the next object.
I hope this is what your looking for. I got kinda excited about this idea. As you can maybe tell.