Или проще не заморачиваться и всё сделать на каждом экране отдельно?
На мой взгляд, в рамках описанной задачи - да.

В codesys можно сделать как-то кнопку "не активной", вместо невидимости? И показать это пользователю?
Переменные состояний - Отключение ввода

Чтобы пользователь понял, что кнопка неактивна: Менеджер визуализации - Установки - Отображать отключенные элементы серым (галочка доступна только в свежих версиях CODESYS)