Without seeing all the code I would guess you are blocking execution of the display routine.
Every time your main code is executed, which I would guess is in a loop selecting which digit is showing, you introduce a 1 second delay with your new code.
Instead, if you are keeping a count of seconds in your timer, use something like this:
if(Seconds & 0x01) LEDPORT |= (1 << secLed);
<secled;
else LEDPORT &= ~(1 <<secled);[ code]
< secLed);
I've assumed your variable counting seconds is called 'Seconds' in the example.
What it does is check the least significant bit of the seconds count, in other words whether the second number is odd or even and it then sets or resets the 'secLed' bit accordingly.
Brian.</secled);[></secled;