Ok, I see why the tlc.clear () and tlc.update () are in the loop now. The loop is performing the multiplexing.
I think the problem may be that the '595 can't provide enough current to light all the rows at once. If you read the data sheet, although each of its outputs can source 25mA, there is a limit of 70mA for the whole chip. I wonder if you are exceeding that. One row is getting the lion's share of the current and the other rows are getting starved.
You could maybe put an npn transistor as an emitter follower on each output of the '595. This would boost the current, but would also drop 0.6~0.7V. With the drop caused by the tlc as well, there might not be enough voltage for the blue and green leds.
Another suggestion would be pnp or p-channel mosfets attached to the '595 outputs.
Easiest of all would be to forget the tlc, the 595 and the common anode leds and use "neopixels" as adafruit call them. These are rgb leds with built-in ws2812 drivers. Just connect the power and data line in one long chain, install the neopixel library and take it from there.