In the end I used the TMR0 timer and wrote the program in assembly (my first attempt at assembly on a PIC!). Using a 32K768Hz crystal, I set the prescalers to 1/256 to give 32Hz, and then counted to 1 second sixty times!

OPTION_REG=%00000111

TRISIO=0

cnt var byte $0F system

ASM

CLRF GPIO
CLRF STATUS
CLRF cnt ;clear registers
CLRF TMR0
LOOP BTFSS TMR0,5 ;count to 1 second
GOTO LOOP
CLRF TMR0
INCF cnt,W
MOVWF cnt
CLRF GPIO ;switch off coil
XORLW 60 ;count to 1 minute
BTFSS STATUS,Z
GOTO LOOP
CLRF cnt ;clear counter
CLRF STATUS
BSF GPIO,0 ;turn on coil+
LOOP1 BTFSS TMR0,5 ;count to 1 second
GOTO LOOP1
CLRF TMR0
INCF cnt,W
MOVWF cnt
CLRF GPIO ;switch off coil
XORLW 60 ;count to 1 minute
BTFSS STATUS,Z
GOTO LOOP1
CLRF cnt ;clear counter
CLRF STATUS
BSF GPIO,1 ;turn on coil-
GOTO LOOP

ENDASM