Mono は通常、すべてのプラットフォームで同じランタイム バージョンをサポートします。つまり、OS X などで .NET35 プロファイルをターゲットにして開発すると、アプリケーションはそのプロファイルの mono を使用して Linux (およびもちろん Windows) でも実行されます。.NET 2.0 および 4.0 プロファイルについても同様です。.NET 2.0 は最も完全で安定しているものですが、私の経験では、.NET35 および .NET4 プロファイルも非常に使いやすいものです。Windows 用にコンパイルされた .NET35 ライブラリの多くは、mono を使用する場合、Linux および OS X ですぐに実行できます。
警告の言葉:私は OS X で Gtk (Gtk# に限定されない) を使用してきたので、避けるべきだと言わざるを得ません。gtk-quartz ブランチは、Linux ブランチほど安定していません。アプリケーションを再現可能にクラッシュさせる既知の問題がいくつかあり (つまり、ドラッグ アンド ドロップに問題があります)、完全に欠落している部分もあります。OSX で gtk を使用して X11 バックエンドのみを使用すると、満足のいく結果が得られますが、OS とユーザー エクスペリエンスへの統合は非常に不十分です。
Linux では Gtk#、Windows では WPF、 MonoMac経由の Cocoa など、OS ごとに異なる GUI フロントエンドの開発を検討するか、開発中のXwtフレームワークを検討してください。