From my little experience in control theory I suppose this comes from the dead time in your setup. There is quite some time between acquiring the position via OptiTrack until the data goes over your computer to the XBee and then over the air to the UAV.
Another option might simply be an incorrectly tuned PID (e.g. I value too high).
Andre Ryll
AscTec Application Engineer