The final shield has been assembled and besides a couple of little niggles, I'm absolutely delighted!
The first error is of my own creation - when creating the part footprint for the matrix itself, I got the dimensions slightly wrong... the rows of pins are spaced 4 MILLIMETRES too far apart!! My heart sank when I found this, but bending the pins on the matrix has solved this issue, although it is a bodge.
The second thing I noticed is the size of the cutouts for the barrel jack and USB port on the Arduino - they don't seem to be deep enough, so the shield still partially sits on them. The shield easily plugs in still, and I suppose the cutouts could just be there so you know not to place components there and have them short out on the USB jack.
Anyways, here it is!