BigAl, hmm that is weird. I wrote to code to drive EXACTLY the schematic you posted (in post #20) and it is fully tested including the clock set buttons (using the same resistor values in your schematic).
I tested it on EasyPIC4, by using 7 jumper wires to connect PORTB0-6 to PORTD-06 (to work the EasyPIC 4 digit display). You push the 7 jumper wires into the 40pin socket to join the pins, since you are using PIC16F628A in the 18pin socket. I just checked the EasyPIC5, it has the same pins for the 4digit display as my EasyPIC4. You also need to switch the DIP switch SW6 4 switches to turn the digit drivers on.
The code should then work on the EasyPIC5, but the clock set buttons won't work unless you put a 150 ohm (to 270 ohm) resistor to replace the "VCC" jumper left of all the buttons. That is necessary for the code to suit your schematic that needs that important resistor. I soldered a 220 ohm resistor onto a 2pin header and pushed it on that spot where the VCC jumper was. Also you need to set the PORTB pullup resistors to GND (pulldown) which mimics the 10k pulldown resistors in your schematic.
Also, the hex file suits your clock schematic and has the 4 digit drivers reversed, so on the EasyPIC4/5 the 4 digits will be in reversed order ie "12:00" will read "00:21".
That can easily be changed in the C cource file for testing (see my comments in the C file).
Since you have a EasyPIC5 don't be afraid to download a free copy of MikroC and use the C source code I supplied you, it is very simple.
As for your clock not working with the hex code, the only thing I can think of is that your clock differs from the schematic you presented! Please check your wiring compared to that schematic. I'm sure it will be an easy fix either in code or in the wiring.
At this point from my side it's easier to work with the multiplexed clock code rather than a 16F874, as I (we) can simulate it on the EasyPIC4/5 with the 4digit module. And it should be less work for you in terms of modifying your clock.