There are MANY good MSG examples available from Allen Bradley. Here's one:
http://au.rockwellautomation.com/applications/gs/ap/gsau.nsf/pages/Messaging_in_a_MicroLogix_1100
As far as reading vs. writing, neither one is 'better': there is no difference in speed or reliability with the Ethernet. I would recommend you consider an architecture where the slaves communicate (write) to the master every time they have a change. Define a block of memory in your slave with all the data to be sent to the master and any time a change occurs for an item within the block, blast the whole block up to the master. There is no point in sending small chunks because the Ethernet has a minimum block size of around 1K anyhow.
Your other alternative is to have the master poll each slave in an infinite loop (a suck approach, vs the above blow approach). Its deterministic (good) but I prefer the 'blow' approach above because you get updates as soon as they occur and it scales great: add 100 slaves and you don't get killed by polling time.
Don't sweat the MSG: its amazingly easy. As in the above example, you just point to the block of registers you want to read or write from (and their length), give it the IP address of the other PLC to read or write to, and it works (sends/receives to/from the block of memory on the other PLC). If you do the 'blow' approach above, be sure to write a timer to keep from constantly sending new data each scan: send a maximum of once per second for example. That way you send immediately on the first change, but if you get another change, you wait another second to tell the master. So it keeps that one slave from hogging all the comms if you have a shared monitored input that goes nuts and oscillates.
I also set up a heartbeat register on every slave to force it to communicate at least once per second (just a bit in your shared block of memory that toggles once per second). Then, over on the master, I verify I get a comm from each slave once every five seconds or produce an error to the HMI that we lost comms to a slave: I use five seconds to avoid any nuisance complaints. That's way cool because you can basically tell the operator which Ethernet cable you're having a problem with. If you are putting an HMI at each station, I also send heartbeats once a second from the master to every slave: that will allow the HMI at each slave to complain if it loses comms from the master and it makes troubleshooting the Ethernet really easy by just looking at all the HMI's.