Если это не проблема обновления пользовательского интерфейса ...
Ваши повторения и отмены ссылок на различные объекты стека? Если они оба ссылаются на один и тот же объект стека, то ваш код просто выдвинет и подтвердит текущее состояние.
Или аналогично, вы нажимаете другую ссылку на тот же объект tileMap или копию его? (т. е. вы, вероятно, хотите Push(tileMap.DeepCopy())
)
Кроме того, почему ты заглядываешь, а потом поп? Вы можете просто зайти прямо в tileMap.