Hola JLIGUAL yo creo que todo esto empezó por tu iniciativa del barco vela, que entusiasmó a muchos (me incluyo) es un buen proyecto en donde toda la comunidad seremos beneficiados.
Con respecto a lo de la programación de eso no te preocupes que aquí hay un nivel elevado de programadores y lo que se necesite se hace

para mi programar es como jugar

y creo que para varios también.
Por otro lado quería agregar unas observaciones, como todos sabemos los temblores de los servos se deben a que la señal de pwm que le aplicamos no cumple exactamente los 2,5ms, sino que a veces un poco más ó un poco menos y esto es debido a las instrucciones en alto nivel del c que no podemos observar esas pequeñas diferencias con respecto a cuánto se llevan a cabo estas, en el pic18 hay instrucciones que pueden llevar 2 ó 3 ciclos del procesador y esto reflejado en las interrupciones se presenta el caso de que cuando se entra en ellas, se puede entrar con 1, 2 ó 0 ciclos de más, esto es lo e podido observar haciendo simulaciones en el mplab, voy a intentar ser un poco más gráfico con un ejemplo, vamos a utilizar la interrupción del timer1 para el mismo:
Supongamos que ajustamos un valor del timer1 tal que queremos lograr una interrupción a los 1ms exactos, una vez que entramos en la interrupción hacemos cero el contador del STOPWATCH en el mplab y observamos el tiempo que se tarda en llegar nuevamente en llegar a la misma, si hacemos esto podemos observar que a veces entra a los 1ms+1ciclo_de_instrucción, otras veces 1ms+2ciclos_de_instrucción y en otras 1ms+0ciclo_de_instrucción, esto hace que el ciclo útil del servo se alargue o se acorte, traducido en temblores para los servos.
Sumado a esto en la rutina de interrupción hay instrucciones condicionales, en donde el número de ciclos de instrucción que se ejecutan si es cierta la condición no es el mismo número de ciclos que si la condición es falsa, por lo tanto crea algo que yo llamo "desequilibrio" que traducido en el servo es tembladera.
Y como son varias instrucciones, esto hace que el desequilibrio sea más grande por lo tanto más visible en los servos.
Todo esto lo e solucionado en el código que e expuesto
aquí, para todo aquel que le interese lo pueda observar.
Nota curiosa:...
Agregando
En teoria
, bueno bueno en mi mente soñadora
... tenemos 2.5 ms por maximo que estarian trabajando los servos y 17.5 ms libres para realizar todas las operaciones necesarias.
Estoy zombie
...
Leyendo los comentarios anteriores me encontré con éste tuyo AKENAFAB y ya tenías la idea desde un principio, exactamente así funciona el código.

así que no estás zombie sino que tenías una buena

Saludos.