Hola:
Puchy, la funcion Pause genera un retardo de X milisegundos con cualquier cristal que utilices, si se vuelve loco como dices es porque al momento de cambiar el cristal, no estas definiendo la nueva frecuanca a utilizar, para eso te sirve la linea:
define OSC 20 por ejemplo.
de tal manera que si pruebas esto:
inicio
high porta.1
pause 1
low porta.1
pause 19
goto inicio
con un cristal de 4 mhz, y esto:
DEFINE OSC 20
inicio
high porta.1
pause 1
low porta.1
pause 19
goto inicio
con un cristal de 20Mhz, los resultados deben ser los mismos.
Suerte...!!!