why not bit bang then? create 2 function, one called SelectLed(); other called DisplayDigit(); there are lots of examples on web of how to use timer0 that you can wrap them into.
......you cant use other ppls code unless you use their hardware config as well, with your own config you will need to resolve own code, you can only snip code if its a part you share in common, ie...how to call the timer0 routine, since the application of timer0 is different so will be the things inside the call...
just an example, but:
void SelectLed(unsigned char cathode){
switch (cathode){
case(1): RA5 = 0;RA4 =1;break;
case(2): RA4 = 0;RA5 = 1;break;
case(3): RA5 = 0;RA4 =0;break;
case else:RA5 = 1;RA4 =1;break;
}}
void DisplayDigit(unsigned char anode){
all_pins_off();
switch (anode){
case(1): pin4 = 1;pin5=1;break;
case(2): pin6 = 1;pin7 = 1;pin4 = 1;pin8 = 1;pin9 = 1;break;
//.....ect....10 cases for 0-9
}}