Schwer zu sagen ohne die genauen Anforderungen zu kennen.
Ich würde erstmal alles versuchen, um keine Windows-Desktop Anwendung schreiben zu müssen. Es gibt ja mit modernen Web-Frameworks kaum noch Gründe für reine Desktop-Anwendungen.
Wenn es unbedingt ein Desktop-Client sein muss, würde ich so viel Logik wie möglich in einen Backend-Service packen und den Client möglichst dumm halten.
Ich würde WinForms ausschließen, weil die Testbarkeit nicht gut ist.
Ich würde WPF ausschließen, weil mir persönlich MVVM nicht gefällt und ich den Aufwand, den man für schöne und moderne WPF-Anwendungen betreiben muss, für zu hoch halte. (DataBindingConverters, globalisierung, RTL Support, Storyboards - das ist unter WPF alles eine Frechheit).
Xamarin.Forms für Desktop setzt auf UWP und die WPF Anbindung ist nicht gut., UWP ist raus, Maui noch nicht fertig..tja - ich weiß auch nicht.