to summerize the problem here is what is happening

* i m loading column data to shift register then latch it
* i m scanning the rows each for 1 ms

* when moving from a row that has a pattern e.g. (11000000) to the next row with
pattern ( 00 00 00 00 ) , the bits that were at logic 1 in the previous state dont turn off to logic zero!! instead they are in intermediate state ( i.e. maybe 2.5 volts instead of zero)
so they still ON but with little brightness

this problem happens whenever a bit is turned of in the next scan ( i.e. whenever a bit that was 1 turned to be 0 in the next row)

thats weird.