Yo nunca he trabajado con un oscilador interno, pero sé que para aplicaciones de precisión como comunicación no es tan recomendable ya que es un oscilador RC y puede cambiar su frecuencia con la temperatura o humedad.
Tal vez si modificas el bootloader de tal manera que al descubrir un error en las tramas, reintentas enviar los paquetes enviados, tanto en el PIc como en el anfitrión que lo programa.
También creo que sería más estable tu bootloader con oscilador RC a bajas velocidades de comunicación, la desventaja es que tomaría más tiempo en finalizar la programación del uC