OK, I haven't given an update as although the problem hasn't reoccurred (despite it happening, pretty much every time we drove it), I can't give an exact reason why it is fixed as I did a bunch of things and one of them may have fixed it or perhaps (since it was a temperature related issue) it isn't fixed but winter temps have made it go away (for now....). But, considering how it hasn't faulted in a month or so, I thought I'd share some of what I did and some comments regarding what these might have achieved...
A recap: Fuel pump relay would turn off after the car was running (particularly in heavy traffic) for a while and then the starter relay would not work. Sometimes, after a short drive and parking for a while (while shopping or whatever - and some heat soak occurred under the bonnet), the fuel pump relay and starter relay would not work until the under bonnet temps cooled down. Once the under bonnet temperatures had cooled down, it would start again. I traced the problem to being a loss of signal from the PCM to these relays (the PCM grounds the low side of the coils in these relays, to allow the PCM to allow them to turn on/off) - I.e. the PCM was turning off these relays. I was able to confirm this by measuring the signal at the PCM connector (by running a diagnostic wire all the way to - and inside - the PCM connector).
What I have done since last post:
I replaced the cooling fans and shroud because (coincidentally), just before sending the PCM off, the outer ring of one of the fans failed and was rubbing on the shroud.
I had sent the PCM off to Injectronics who tested it and could not fault it on their test rig, they returned it but I couldn't immediately start the car as while fitting the cooling fan shroud, the small plastic outlet at the side of the radiator cracked (and I was in the middle of doing 5.).
Although (2) was annoying, I've noticed the car had been running a bit hotter than normal (not too bad, but the needle in the temp gauge could point - almost - straight up, if the car was stuck in traffic for prolonged periods), so it was time for a new radiator soon anyway. When I replaced the radiator, I did a complete flush (with coolant flush) and did several water flushes afterwards so when the new (Ford) coolant went in, it would be nice and clean. BTW, the old coolant was a nice green colour (no rust in the coolant) which was not surprising as I regularly replace the coolant.
I cleaned (thoroughly) the battery terminals (which for a LONG time) were getting that white/blueish powdery build-up on them. I also bought some CRC Battery Terminal Protection spray, and sprayed the battery posts (thoroughly) before reconnecting the terminals.
I (unrelated to the issue, but this is another reason for the slow update), I removed the IRS and replaced all the rear suspension and diff bushes.
What could have fixed it:
Nothing, it could still be faulty, as the weather is now cooler and the new radiator is now working more efficiently, so maybe now, the under bonnet temperatures are low enough for whatever was failing to no longer fail. 1a) Although I don't think this is the case, the air off the radiator blows straight onto the crank sensor (which, if not giving the PCM the right signal, the PCM might assume the engine has stalled and turn off the fuel pump). I doubt there's anything wrong with the crank sensor as, when I (earlier) had used my switch to ground the signal (that goes to the PCM to allow the fuel pump relay to run), the signal from the crank sensor was good enough for the other functions used by the PCM to still allow the engine to run perfectly fine. However, it is possible that the PCM (somehow) uses the crank sensor in different ways (for ignition timing and for fuel pump relay operation) such that it works OK for the ignition timing, but the PCM still didn't consider the signal good enough to allow the fuel pump to run (BTW, there were no crank sensor error codes). I doubt this too, but I don't know how the PCM code is written (despite reading the Ford Manual, which has quite a bit of useful info, but not enough to know for sure). 1b) Again, although I don't think this is the case, it is possible that some other component under the bonnet (the PCM itself) was being temperature stressed and either going into fault, or faulting enough that the PCM decided to turn off the fuel pump. I doubt the PCM was turning off the fuel pump due the PCM getting temperature stressed as Injectronics thermal stressed it as part of their tests (I rang them - both the first time I sent the PCM to them, and again the second time, where I had quite a long discussion regarding their testing and I feel pretty confident they've stress tested it more than it was being stressed by a slightly inefficient radiator was causing). When I read the Ford manual, I also couldn't see any other sensor that (if failed) would give the same symptoms.
The PCM and/or some sensors were getting a "bad earth" signal (due to the battery post corrosion/build-up) and this was causing the PCM to turn off these relays. My brother is an (very experienced) electrical engineer and a "bad earth" was one of the things he suggested I look at when the problem first occurred. I did check (with a multimeter) the condition of the earth at the PCM (when originally diagnosing the problem) and I could never find a problem with it (always less than an Ohm or so) but I know from my experience as a mechatronics engineer, that poor earthing and sub optimal connections can cause intermittent (and difficult to identify) problems, particularly with low voltage signals (such as you find under the bonnet of a car). To be honest, I only decided to buy the Battery Terminal Protection spray to rule it out (more out of frustration, and a desire to rule it out) and I'm not saying this fixed it, but it is a real possibility that the problem was a simple as that.
There was a problem with the connection from the PCM PCB to the pins where the engine loom connects, and Injectronic's work of removing and replacement of the original and (later) their sealant around the cover plate under the PCM aluminium housing, has flexed the PCB and/or pins in such a way that the connection (which - assuming the connection was bad in the first place), now is a better connection and no longer effected by thermal stress. I doubt this to be the case, but I guess it is possible.
I really don't feel confident the problem is fixed but since the problem was occurring VERY frequently (almost always on every drive), and now it hasn't faulted once in the past month or so, I think option 1 is unlikely (I'll update this post if the fault occurs again). I don't think option 3 is likely as I suspect the connector pins are soldered directly onto the PCB and the silicon sealant (for the cover plate) is unlikely to provide sufficient force to fix a dry solder joint (BTW, Injectronics remove this cover to visually inspect for dry solder joints and couldn't find any - both times they had it). So (despite finding it a bit hard to believe that the battery connection was good enough to allow BIG currents to flow when the starter motor was cranked, but bad enough to upset a sensor's signal to the PCM), at this stage I'm thinking it is option 2...
BTW, the P0230 error code might have been a bit of a red herring, as I was (when the fault occurred, effectively) grounding the fuel pump's starter relay (to over ride the ground signal that the PCM should have provided, so we could continue to drive the car) but in doing so, I was also grounding that pin on the PCM (which the P0230 fault is reporting - there's a short on the fuel pump relay signal). So, my over-ride method may have been the cause of the P0230 error code after the fault (whatever it was) had caused the PCM to stop allowing the fuel pump to run...
Anyway, sorry for the long explanation but I know how frustrating this fault is (I've been battling with it for over a year now) and I figured some feedback of what I did (even if it is a bit long), is better than nothing at all. If you have this problem and are able to fix it (definitively), please let the forum know :).
Toby