I installed the refurbished injectors (PITA) and new fuel filter and took her out for a spin... and wow, the beast is back!
I'm actually quite stunned with how the car feels, drives and sounds now, it's almost a different machine. And no codes!
First, there's no hesitation, idle is smoother, there's no unburnt fuel smell in the engine bay and the exhaust smells almost neutral (used to smell rich). The pickup on throttle is far quicker and the sound on WOT is rabid, the good old M3 rasp is back in spades. I'm quite surprised at how much better it feels (and sounds - I didn't expect that).
The injectors really needed a service, 2 were at ~85% flow and another 3 were at ~90% flow which really is far from optimal. The amount of sediment that came out of the lines and filter was also quite impressive (i.e bad).
Injectors went into place quickly enough but getting the back two clips on (6th injector and fuel rail clips) took me as long as the rest of the job, really difficult access. But hey, the engine bay isn't full of fuel so that's a good sign. Phil at InjectorTech (http://www.injectortech.co.nz/) did a really good job and even fixed a broken injector for me, nice one, highly recommended.
Fuel filter was a cinch once I worked out how to decouple the Dorman connectors (I think that's what they are). No tube and clamp setup here like a "normal" e36, mine (and I suspect all M3's) has fancy-pants couplings. The good thing is they go back on so easily with a reassuring 'click' to confirm they're engaged and sealed. It actually took me longer to get the (extended) under panel off and back on than it did to swap out the filter.
Front bumper is also back on with all new fixings and cracked front fog lamp swapped with a good one out of the 328.
So, back on the road after ~6 weeks and well deserving of a good wash and clean which she'll get tomorrow.
Front strut bar is at the powder coaters for a matt black finish rather than the shiny anodised finish it has now.
Next? Install the alu radiator which I need to get out of the 328 first. Have the replacement for the 328 and now the M3 is up and running I might tackle that this weekend.
Then? Probably a steering rack swap from purple tag to Z3 which I have sitting in the garage.