Cannot get connection between interfaces

I have been bashing my head against the wall with this.

I have a very simple configuration on a 532/564 combination. There are 5 LANS, one of which connects to the internet via a pppoe-client.

Machines on the other 4 LANS can all talk to the internet perfectly.

VERY occasionally I can ping a machine on one network from a machine on another network.

Can someone tell me what I am missing to connect for example a machine on GeneralLAN to a machine on PrinterLAN. Ideally any machine on any network should be able to talk to any other machine on any other network.
I don't want to put all machines on the same network and I dont want to bridge all interfaces.

I am sure I am just missing a simple route or firewall entry but as a newbie I am lost. Below is my current configuration.

Thanks Chris

\

Give names to the interfaces.

/ interface set ether1 name=MarinaLAN
/ interface set ether2 name=WAN
/ interface set ether3 name=PrinterLAN
/ interface set ether5 name=GeneralLAN
/ interface set ether9 name=UtilityLAN

Enable the LAN and WAN interfaces.

/ interface enable MarinaLAN
/ interface enable WAN
/ interface enable PrinterLAN
/ interface enable GeneralLAN
/ interface enable UtilityLAN

Setup pppoe-client and default route

/ interface pppoe-client add user=username password=password interface=WAN add-default-route=yes disabled=no

Setup address and DHCP server for GeneralLAN interface

/ ip address add address=192.168.1.1/24 interface=GeneralLAN
/ ip pool add name=GeneralLAN-pool ranges=192.168.1.100-192.168.1.150
/ ip dhcp-server network add address=192.168.1.0/24 dns-server=212.23.3.100,212.23.6.100 gateway=192.168.1.1
/ ip dhcp-server add interface=GeneralLAN address-pool=GeneralLAN-pool lease-time=0d00:10:00 disabled=no

Setup address and DHCP server for MarinaLAN

/ ip address add address=192.168.2.1/24 interface=MarinaLAN
/ ip pool add name=MarinaLAN-pool ranges=192.168.2.100-192.168.2.150
/ ip dhcp-server network add address=192.168.2.0/24 dns-server=212.23.3.100,212.23.6.100 gateway=192.168.2.1
/ ip dhcp-server add interface=MarinaLAN address-pool=MarinaLAN-pool lease-time=0d00:10:00 disabled=no

Set up address and DHCP server for PrinterLAN

/ ip address add address=192.168.3.1/24 interface=PrinterLAN
/ ip pool add name=PrinterLAN-pool ranges=192.168.3.100-192.168.3.150
/ ip dhcp-server network add address=192.168.3.0/24 dns-server=212.23.3.100,212.23.6.100 gateway=192.168.3.1
/ ip dhcp-server add interface=PrinterLAN address-pool=PrinterLAN-pool lease-time=0d00:10:00 disabled=no

Setup address and DHCP server for UtilityLAN

/ ip address add address=192.168.5.1/24 interface=UtilityLAN
/ ip pool add name=UtilityLAN-pool ranges=192.168.5.100-192.168.5.150
/ ip dhcp-server network add address=192.168.5.0/24 dns-server=212.23.3.100,212.23.6.100 gateway=192.168.5.1
/ ip dhcp-server add interface=UtilityLAN address-pool=UtilityLAN-pool lease-time=0d00:10:00 disabled=no

Set up masqueraded NAT

/ ip firewall nat add chain=srcnat out-interface=pppoe-out1 action=masquerade

Make sure DNS requests get out

/ ip dns set allow-remote-requests=yes

I suggest changing your MASQ rule from:

Set up masqueraded NAT

/ ip firewall nat add chain=srcnat out-interface=pppoe-out1 action=masquerade

to

Set up masqueraded NAT

/ ip firewall nat add chain=srcnat action=masquerade

Currently you are only translating traffic going to the internet, and not traffic between your interfaces.

You could also do this:

Set up masqueraded NAT

/ ip firewall nat add chain=srcnat src-address=192.168.0.0/16 action=masquerade

The above would be a more secure solution.