Bueno, pues parece que he conseguido hacer que funcione. He identificado los errores que tenía, pero no sé explicarlos... a ver si alguien sí:
El fallo que tenía está al configurar el Timer0 ( " setup_counters(RTCC_INTERNAL,RTCC_DIV_4); " ). Cuando lo hago, la salida del PIN_B1 se pone en alta, y tengo el problema que comentaba. Ni idea de por qué (¿Algo que ver con el reloj?). Si quito esa línea, todo va bien (salvo por que me quedo sin timer...).
He cambiado el pin de estado del PIN_B1 al PIN_B5 y todo funciona perfectamente (sin #use fast_io ni nada). Es una solución, vale, ya funciona. Pero me fastidia tener inutilizado el pin B1, cuando además, y no sé por qué, ya he comprobado varias veces que el PIN_B2 tampoco lo puedo establecer como output. Esto no viene al caso, pero parece que estoy encontrando muchas cosas raras con los pines en poco tiempo.
En fin, la cosa es que ya funciona. Me he ganado dormir. Rivale, muchísimas gracias por la ayuda, y a ver si tú o alguien le ve sentido a lo del timer...
Un saludo!