te me has adelantado amigo navaismo
veras apocalypse, el pasar de un 16f628 a un 12f629 no supone adquirir nuevos conocimientos de programacion sino mas bien leerse el datasheet y ver sus diferencias. por ejemplo en el 12f629 los puertos (porta, portb, etc) pasan a llamarse gpio. tambien en funcion del numero de pines que necesites podras habilitar ciertos valores en determinados registros para ello. me explicare mejor: en tu proyecto utilizas un oscilador externo que te esta restando el uso de 2 pines, pero podrias hacer uso del oscilador interno y ganar esos 2 pines... es posible configurar el pic para tener hasta 6 entradas/salidas.
para tu proyecto el 12f629 es de lo mas suficiente. de todas formas ten en cuenta que el pic no entrega suficiente corriente para gobernar directamente un rele y tendras que realizar una etapa adaptadora entre ellos.
por lo demas me remito a lo dicho por navaismo: en el subforo de Pic Basic Pro y Proton tienes una serie de ejemplos sobre el tema y si quieres hacerlo en C pues otro tanto de lo mismo.
cuando tengas algo hecho subelo y veremos donde puede estar el problema, si es que lo hay.
un saludo