IgnoreCollision можно сбросить выключением коллайдера, как и написано в документации:
When deactivating the collider the IgnoreCollision state will be lost and you have to call Physics2D.IgnoreCollision again.
IgnoreLayerCollision, по всей видимости, меняет матрицу взаимодействия слоёв, и отменить его так просто нельзя. Либо запоминайте то, что вы игнорировали, либо сохраняйте матрицу целиком с помощью
GetIgnoreLayerCollision и
GetLayerCollisionMask, а когда понадобится, так же целиком перезаписывайте текущую матрицу.
Ещё можно разрулить всё слоями и переносить либо движущиеся объекты между слоями, либо препятствия. IgnoreCollision это скорее костыль для особых ситуаций, повсеместно использовать его не стоит.