I think I have found the root cause
Using a spoke length calculator -
https://www.prowheelbuilder.com/spokelengthcalculator I can see the spoke lengths are different for these asymmetric rims and the wheel has been laced with the same length spokes (290mm).
The non-drive side (rear) should be 291.4mm. The non-disc side (front) also should be longer (291.4mm). Note the asymmetric rims are laced to compensate for the centre line offset, which is different rear and front, so they are laced differently (cassette takes up the dish on the rear, and the disc takes the dish on the front). The idea of asymmetric rims is to even up the spoke tension to build stronger wheels.
All the nipple failures are non-drive side rear and front non-disc side. So I conclude the spoke lengths are too short (1.4mm) which is not enough to fully thread into the nipple and hence the fractures. If I look at each nipple they are clearly not long enough in each alternate hole, front and rear.
So I need 32 new spokes length 292mm (plus replace the fatigued nipples).
The spoke tensioner is great. My daughter's new wheels had a spot on even tension, but greater difference drive side vs non-drive side. I tensioned my wheels using the Park Tools WTA online app. Then I fine-tuned afterwards to correct any lateral movement, and that worked well. The spoke tension difference was less using the asymmetric rims.
I'll ring SJS, as they built the original wheels, and see if they agree. It is, as Dan suggests, a useful skill to have in the field. It would be nice to know I can take a good shot at rebuilding a wheel.
I tried the spoke frequency, but a spoke tensioner is much faster.