As it happens I was failing to properly calculate my resistor values on my TIP107 transistors. By failing to properly calculate I of course mean 'took a wild guess'. I was using a 10k resistor between the base and ground. Using 18v this only allows for a total of 0.0018 amps via the base. The hfe of this transistor is 200, so the current was being limited at .36amps. Far less than the 2ish amps needed to drive all the lights. I think the transistors were heating up, due to trying to limit that much current which was causing their properties to change. Replace those 10k's with a 1k (which allows me 3.6a through the transistor, and all is well with the world.
My dodgy rework job as i cbf getting my boards reprinted. Notice the pre-burned trace (my fault) and the sticky uppy pin on that there uln2803.
So here's the thing. I drive my lamps with 18v, instead of their rated 12. This is because they are only on 1/8th of the time due to the matrix. Problem is, if my program stops while the lamps are on, i'll get 18v pumping straight through my lamps which will likely lead to a premature death. Similar to what I intend on doing with coils, my intention now is to have a power distribution board with a watchdog timer on it. The watchdog timer will go to a couple of automotive relays which control the 18 and 24v drives (lamps and coils). I'll hook into one of the column drives for the watchdog. More on that in a later post!