インストーラーを作成する際にlogを出力する設定にすればエラーが起きた際に対応しやすいです。 ログに出力は実行時にlvにファイル名を書くことで行えます。
msiexec /lv* install.log /i ~
生成されるログファイルは大量のログを残しますが、エラーが起きている箇所は戻り値が下記の用に3となるので、戻り値が3の箇所を探すことでエラー箇所を特定できます
CustomAction TEST_ACTION returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox) 操作終了 00:00:00: InstallFinalize。 戻り値 3。