[Advice needed] Building a small BCD clock.

Using charleplexing, you can control up to 20 LEDs with 5 pins. This would be your best bet. I recently put some code up on Github that makes it relatively painless: GitHub - marcuserronius/ChuckPlex at 1.0

… as for controlling the LEDs, I'd make arrays organizing the relevant LEDs. Split the time up into separate decimal components, and extract the extract the place values of the ON bits from each, use them as indices for the LEDs array, i.e.:

int digit1[] = {1,2};
int digit2[] = {3,4,5,6};
int digit3[] = {7,8,9};
int digit4[] = {10,11,12,13};
[…]
for(i=0;i<4;i++){
  if(bitRead(timeDigit2,i){
    // turn on LED digit2[i]
  }
}

Something like that, maybe. If you go with multiplexing the LEDs, this might end up causing too much flicker, in which case you could build a list of LEDs to turn on and cycle them until the next time the time changes.