Я не уверен, что это лучшее решение, но если вы хотите сохранить эти свойства как часть вашей модели, вы можете переместить классы модели в отдельный проект и отметить все свойства, которые вы хотите скрыть, как internal
таким образом, к этим свойствам можно получить доступ только внутри этой сборки, если вы не укажете
[assembly: InternalsVisibleTo()]