ハードウエアタイマは一切使わず、お察しのとおりソフトでゴリゴリやってます。
サーボ制御角度1度にあたる10usを1カウントとしたソフトウエアタイマを回して、
カウントごとに6ch分のコンペアマッチ検出、このループを5周重ねて30chを生成してみました。

割り込みは使わないで、全てポーリングでタスク管理をしています。
そのためパルス幅のジッタはMPLABシミュレータ上では発生していません。
ただ、関数内でどんな状態に遷移しても、処理時間を一定に保たなければならないので、
いたるところに時間微調整用のnopが入っていて、汚いことこの上ない。

現在、メインの秋月SH2からシリアルで角度データを垂れ流して、
PICにパルスジェネレートを任せるという使い方をしています。
プロセッサはプロセッサらしく、コントローラにはコントローラらしく、
それぞれの利点を生かせる構成にすると、開発も簡単になりますね。