Thanks Joe S

The power is very well bypassed so I tried the FLAGS = 0 command and it worked but not without a bit of fiddling.
I reasoned that if any reset occurrs the software would be reinitialised but I must be wrong.
I first put the FLAGS command at the start of the program but that didnt work.
I then put it after the clearing and home commands with a pause before continuing as below.

Lcdout $fe, 1 'CLEAR
Lcdout $fe, $0C 'CURS OFF
Lcdout $fe, 2 'HOME
flags = 0
pause 2000
lcdout "Hello WORLD" ' WRITE

It was also neccessary to adjust the timing parameters quite carefully as below
DEFINE LCD_COMMANDUS 3000
DEFINE LCD_DATAUS 150

It now works from any kind of reset.
I have used literally hundreds of these displays with several PICS and 8051 types but never battled like this before!

Thanks again for the suggestion.