アップグレードは、Product@Id を変更して、バージョンを上げてビルドすれば、OKですよ。
別バリエーションの検出などがない素直なものであれば、<MajorUpgrade> 要素ですべて片付きます。
パッチと、UIのカスタマイズについては、サンプルソースですが、
http://blogs.wankuma.com/tocchann/archive/2011/09/12/202707.aspx
にあります。セッションそのものはmsiファイルそのものを見るというかなり斜めなセッションですがw
オリジナルUIの作成とカスタムアクション(CA)は、Codezine の連載記事(WiXで始める。。のほう)の第4回くらいからで実際に実装しています。
記事自体は、2.0時代のものなので、いくつか違ってる部分もありますが、基本的な部分は、今も変わりません。
連載で使ってるCAは、仕事で利用しているシリアルチェックルーチンを公開可能な形でリメイクしたものです(値のチェックそのものはもちろん適当ですけどねw)。
良質なサンプルとして、エラーチェックとか全部織り込んであったはずです。