My question is this - how do I go about spec'ing a suitable transistor for this case? And similarly, how do
I spec any current limiting resistors required?
Let' start with the LED current limiting resistors. These go between the 74HC595 outputs and the columns, because there is only one LED on per column at a time. Unfortunately, the 74HC595 has a maximum Vcc current limit of 70mA. So you should choose the current limiting resistors for 9mA per LED, not the 20mA you are aiming for. If you want more current than that, the simplest solution is to reverse the matrix (i.e. cathodes to column lines) and use TPIC6B595 shift registers to drive the columns instead of 74HC595. You will then need to switch the rows using high-side switches instead of low-side switches.
For the transistors, the important thing is to select one with good current gain and low saturation voltage at the current you will be using. Darlingtons are best avoided because of their high saturation voltage. If you want to switch as much as 800mA, then it would be better to use mosfets rather than BJTs.