Если вы используете визуальное наследование, эти проблемы являются фактом жизни, и они вряд ли когда-либо исчезнут.
Я широко использую наследование UserControl в моем текущем проекте. Я привык понимать проблему, которую вы описываете очень часто. Со временем я доработал дизайн до такой степени, что теперь это происходит только изредка, и мне редко приходится больше танцевать «чистый перезапуск-перестройка».
Ваш пробег, вероятно, будет разным, но я думаю, что главное, что я сделал, чтобы уменьшить эту проблему, было избавиться от привязок данных между сборками во время разработки.
Примером этого является случай, когда вы удаляете BindingSource на своей форме и устанавливаете для его источника данных тип из другой сборки.
(Ну, это всегда из другой сборки, потому что я никогда не определяю типы в той же сборке, что и мой пользовательский интерфейс. Поэтому, насколько я знаю, возможность межсборочной сборки может даже не быть фактором.)
В любом случае, в итоге я избавился от большинства или всех этих привязок времени разработки и настроил все свои привязки во время выполнения. Проблема ушла на 99%. Это все еще иногда случается, но я не пытаюсь решить проблему.
И что бы вы ни делали, не наследуйте форму / элемент управления от базового базового класса. Это ломает это 100% времени. Если вам нужно сделать это, есть обходной путь, который вы можете найти с помощью быстрого поиска.
Microsoft почти наверняка никогда не исправит эти проблемы, поэтому привыкните к ним.