Sending a rapidly changing variable through SPI
Looks like you have a race condition where the interrupt to increment the counter is occuring while the value is being read out.  The solution is to declare the counter variable voltatile and then disable the timer interrupt while you copy the counter value into a temporary register.