HI Scott, 
i do a similar thing - send OSC from the LEMUR app to pd and vice versa.
Lemur sends osc and to receive it in pd works fine with 
[netreceive -u -b] 
|
[oscparse]
|
[list trim]
|
[route whatever the message]

there seem to be a odd behaviour with [netsend -u -b] though.
according the UDP protocol a message should be broadcast to an IP adress regardless if the receiving end is actually listening.
this bi-directionality is redarded only with TCP.

however, in [netsend -u -b] once the receive leaves the network the connection is closed, and you need to reconnect to the device in order to send messages.
so i connect to the device every second, to make sure that it receives messages upon re-entry to the wlan-network
(i also need to send the status of the patch on a regular basis, so that all devices are up to date…)

my patch (quite simple file playback in response to sensor input) worked fine, but i had occasional crashes / freezes with “watchdog singaling pd” (i run pd-0.48 on RaspberryPi B+)
since pd writes “connecting to port “ to the console everytime i connect - which is every second - after a couple of hours/days is filled the RAM and caused some misbeavior.

the solution - and i hope it really fixes the freezes also in the long run - was to send the standard error to dev/null like so:
puredata -stderr 2>/dev/null path/to/patch.pd

i think roman made an error report about this [netreceive -u -b] beahviour already.