I initially started with the .85 ip, but then I changed to testing with the .86 router ip as i knew it was working for my LAN machines.
Anyway I followed your advice and basically deleted every firewall and NAT rule on every interface and started again from scratch using the 1:1 nat (based on the .85 ip), the basic advance outbound NAT rules for my LAN, and the DMZ firewall rule to allow anywhere but the LAN.
I then rebooted the pc engines machine and test the DMZ server - which worked as expect straight away following the M0n0wall reboot.

I also tested the .80 and .87 ip, which also worked fine as you suggested they would.

I am not sure what was causing this issue, but I did have a lot of pass firewall rules that were toggled to the disabled state, and my feeling is that removing these rule is what solved the problem (although i am not really sure what the problem was).
As i need to add all the firewall rules again i think am going to take the opportunity to use the aliases function.
However, i am unsure about the public ip addresses in relation to the firewall rules. Can I just ignore the public IP addresses and use the aliases/internal ip's? I think I have read somewhere that NAT happens before the firewalls rules so I am assuming that ignoring the public IP address will be ok.
Anyway, thank you for your assistance and for producing M0n0wall. It's one of the best open source projects I have come across - as it is easy to use and once configured it remains operational for months.
JimmyK