I finally got my seat working properly again. I had already eliminated the switches as the cause, leaving only the seat module or (so I believed) the position sensor. Today I finally got an opportunity to remove the seat module. A replacement module would have fixed the problem, but I didn't have one to try, so I decided to see if I could find anything wrong with this one. It came apart easily enough and I was able to get at the circuit board. I began by unsoldering all the connectors and relays, then soldering them up again, just to make sure there were no dry joints. Then I noticed the pins of the power connector were slightly bronzed in colour. They were tarnished. I cleaned them with a fibre pencil, reassembled the module and refitted it to the car. The seat now works perfectly. Result!