Преобразуйте форму в элемент управления, упакованный в его собственную сборку (возможно, библиотеку элементов управления Windows Forms) - таким образом, она будет использоваться повторно.
Затем сохраните столько кода, не относящегося к пользовательскому интерфейсу,может в отдельной библиотеке классов (или библиотеках);это позволит дальнейшее повторное использование - для другого пользовательского интерфейса, такого как библиотека пользовательских элементов управления WPF.
Что касается структуры кода, MVC (как указал Арсений), безусловно, является вариантом.
Эффективно используйте интерфейсы, чтобы их было легко интегрировать.