Que ótimo que você quer ser independente do compilador! Infelizmente, os compiladores hitech e CCS para os PICs low-end usam muitas declarações específicas de pré-processador, rotinas de acesso de pinos específicas do compilador e, no caso de rotinas específicas do compilador CCS, para acessar funções principais como SPI, I2C, ADC e assim por diante.
Não é possível escrever seu código para ser não específico do compilador sem muito pré-processador #define, #ifdef, #ifndef e assim por diante para obter acesso a partes específicas do que cada compilador tem a oferecer. Isso tornaria seu código ilegível.
A melhor coisa que você poderia procurar é ser independente do IDE e usar algo como eclipse, portanto, pelo menos, você está usando o mesmo IDE. Isso resultará na perda de assistentes do CCS para a configuração das funções principais, mas proporcionará maior flexibilidade no uso do mesmo IDE.
Outra coisa a considerar é que tanto a Hitech quanto a CCS não têm (pelo menos no passado) um vinculador verdadeiro do compilador c e exigiram que você usasse "#include myfile.c", que eu pessoalmente desprezo ... mas isso é outra história.
Eu não comentei no compilador IAR, pois usei apenas o CCS e a hitech. Ambos funcionaram bem, mas eu nunca fiquei muito feliz depois de migrar da plataforma Motorola (agora em escala livre) e usar o compilador metroworks, que era mais avançado na época. O compilador IAR parece bom, mas nunca o usei.