This winter, with the car on SORN and in the garage I decided to get this licked once and for all. I bought a diagnostic cable set from bcables via eBay for about £30 and after connecting to the car, established that the ABS module was at fault. The speed sensors and pump didn't report any faults. A bit more research on this forum and online yielded bbreman as someone who could repair it, but first it has to be removed. As I couldn't find much in the way of instructions, I thought I'd write my own

First of all, to answer similar questions I've seen elsewhere, you don't need to bleed your brakes or drain the fluid. The module attaches to the pump with four torx type screws - more of that in a moment - and an electrical connector with a lever to hold it in place.
Before starting work, I had already removed the battery from the car but at the very least make sure it is disconnected. Here's the troublesome ABS module as found. You can't miss it as it lives on the left side of the engine bay (as viewed from the driver's seat):

The module is to the left of the picture, where the wires can be seen going into it. It's pretty close to the engine and so it's perhaps no surprise after many hundreds or thousands of heating and cooling cycles the module would start to suffer. Here's a close-up of the module; this picture has been rotated 180 degrees so you can see the part numbers:

Now, the bolts. They're torx type but have heads instead of being recessed into the thread. I have a couple of torx drivers but no sockets to tackle this, until I realised I could use another threaded bolt as a driver itself. I found one and added two nuts to it, then used a cyclist spanner to undo. Makes more sense in this picture:

And here it is lined up with the module:

The bolts are hardly tight and they came out easily; four in all across each four corners of the module. The module then separates from the pump:

Then the electrical connector. This had been described in other threads I've seen as a fiddly job to remove, and that's quite true. With all the dust and grime in the car's 18 years, it took a lot of wiggling and gentle use of a slotted screwdriver - rotated gently once pried into the gap - to free it off. Be patient. As it starts to move, you pull the black sleeve (pictured below) away from the module and this forces the connector out:

The approach is similar to other large connector blocks I've seen before. Then the module is out:

With bbreman, I contacted them first on eBay as the BMW ABS module isn't listed; a lady responded and told me to purchase the repair service for a similar BMW product (£129 including postage both ways) and add in the notes what I needed. The team were super-quick; I posted the module on a Monday (UPS pick-up) and it was back home on Friday! Can't get faster than that really.
The modules are sealed at manufacture, so it has to be opened for repair. When the module returned, you can see where it had been re-sealed, along with a trusty-looking warranty seal sticker in place:

In the classic Haynes style, refitting is the reversal of removal. Do the connector first and then the bolts, taking care not to over-tighten. Take time to clean everything though - I used dry paper towels as the idea of using any fluid around this area didn't seem a good idea. Once done, when switching the ignition on, the lights went straight out after just a few seconds, and stayed out! I thought I'd need to drive the car to get the self-test to run, but no such problem.
I contacted bbreman to thank them and asked what repairs had actually taken place. They were vague, perhaps because someone in their office answered the query instead of an engineer, saying that "a number of components were worn and required replacement". The theory of cracked solder joints is probably the best guess, but in a way I don't mind - it's fixed, I have a warranty on the repair, and the car sailed through its MoT this week.