У вас классичесский PageObjects подход, повезло вам!
Я тоже использую с#, и как бы все работает, мы за основу взяли maqs решение, и интересный подход. Посмотрите
Резюмирую:
и тот подход и другой - никак не нарушает идею Page Object Pattern. Люди выносят классы с локаторами в отдельный файл, потому что в этом случае проще редактировать один файл, когда поменялась верстка. Это исключает возможность случайно закоммитить правки не относящиеся к локаторам, если локаторы хранились бы в PageObject’ах.
в куче языков проблем с множественным наследованием нет, например, в Python это отлично используется. В статических языках можно решить не наследованием, а композицией
Ну и когда локаторов на страницу становится много, а атрибуты класса объявляются обычно в начале класса - бывает неудобно работать с классом пейдж объекта. А так – начинаешь писать, и оп, IDE тебе подмешанные в класс локаторы предлагает