Don't know much about your TM1637, but the one thing that jumped out for me was:

Code:
for cnt = 7 to 0 step -1 'Send 8 bits of data, starting with the LSB. 
dio = bytetosend.0(cnt)
I think your FOR/NEXT would be shifting MSB first (bit7, bit6, bit5...)

If you're getting bits banging out, maybe I'm wrong, but try:

Code:
for cnt = 0 to 7
dio = bytetosend.(cnt)
Haven't tried that code, not even in simulation.