After several days of cussing and pulling out hair I have finally figured the problem with the power and wifi.
The NCP1421 works OK but cannot handle the sudden load of 250mA+ put on it by the ESP8266 wifi quick enough to prevent a brown out on the other parts of the circuit. As I will be switching power off and on the ESP8266 every time this is a problem. I tried putting capacitors on the Vcc up to 1500uf but it was getting a bit ridiculous so I thought I would try and stop the brown out by isolating the CPU/LCD 3.3V behind a diode (D1)/capacitor (c6) which will charge and buffer Vcc (PIC+LCD=24mA when not in sleep) and when the sudden drop occurs the schottky diode (d1) will not conduct and (hopefully and with careful selection) C6 will hold Vcc for the few milliseconds until the power stabilises. The extract of the circuit is below;
[Edit (16/12/2014): The voltage drop across D1 means the V3.3V-SW is actually about 2.7V even using a schottky diode, this is not enough for the LCD 🙁 Why I didn’t spot that glaringly obvious error is beyond me, but what doesn’t kill you… A 3V LDO may work but I will concentrate on design 2 for now.]
The barcode only draws 100mA and does not cause the problem. Of course if I’d stuck with 3.7V Lithium Ion and separate 3.3V LDO’s for CPU and peripherals this wouldn’t have been as issue. As my design has space for 2 x AA sized batteries, I’m just deciding if this is still an option, just in case I am going to fork the design into an LiPo 3.7V powered one (Rev7) and the same with the above modification. This way I can save some time if one or the other does not work.