Here's one of your update code pieces
digitalWrite(third, HIGH);
updateLEDs(number[tens]);
digitalWrite(third, LOW);
Let's add some comments to indicate what this is doing
digitalWrite(third, HIGH); // turn on digit and have it display what ever crap was in the SR from the last digit
updateLEDs(number[tens]); // spent some time shifting the new digit in
// the correct digit is now displayed
digitalWrite(third, LOW); // turn off the digit
This will just pulse the digit very briefly with the wrong number, then even more briefly with the right number, then turn it off.
Secondly: An Arduino pin will have trouble driving 7 LEDs, with a CA display you should have some form of high-side driver. CC is a lot easier. This however will only affect the brightness (and possibly damage the Mega chip).
Rob