Primero que nada:
set_adc_channel(0); //lectura canal 0
a=read_ADC();
set_adc_channel(1); //lectura canal 1
b=read_ADC();
Eso deberia estar en el main, read_adc() espera hasta que tengas un resultado, por lo tanto se queda en la interrupcion, deberias poner una variable de 1 bit a 1 y luego actuar acorde en el main()
Respecto a tu pregunta original, no veo por ningun lado que tengas definido que es timer1, lo cual no deberia compilar, si compila entonces timer1 se refire a otra cosa.
Otra cosa, es que siempre se pone el flag a 0, pero jamas a 1. No veo donde estas poniendo el flag a 1, lo cual los 2 ultimos if los deshabilita por completo.