Bryan,
I have been reading a bit, I am thinking that the onboard serial port is getting stomped on by other interrupts.
I know little to nothing about interrupts, past messing with them back in win95/NT back in the day.... but maybe I'll spur some moment of inspiration.
My Theory:
The rPi USB chip is known to have a poor driver situation... 8k interrupts per second at idle! So, something time critical like your 115kbaud serial cannot get the timing precision it needs using software interrupts, with the USB controller hogging all the interrupts. I think increased wifi and other USB traffic will cause problems with other interrupt driven 'realtime' systems.
Here is some info:
http://www.element14.com/community/thread/18568?start=0&tstart=0
http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=7866
I think a good test would be to disable the USB driver and running a benchmark at high speed...
echo 1 > /sys/devices/platform/bcm2708_usb/bussuspend
EDIT: This may have been fixed by a patch on 7/7/12: 'echo on | sudo tee /proc/dwc_sof/SOF_reduction' to reduce interrupts... I may be way off base in that case.
Another option is to slow down the serial rate and see if you can avoid the problem... If you only send 25 bytes or some small amount at a rate of 0.5Hz, then why not slow down to 9600 baud? That gives the cpu/software serial driver 10x the time to get an idea of what the bit stream is doing, and you still get the data in a timely manner.
If either or both of those provide any positive results, we are at the mercy of the rPi kernel guys to write a better driver for the USB port that does not poll at ~8KHz. Its that, or change the priority of the interrupt used by the ttyAMA device to something higher than the USB controller. I'm not sure how to do this on linux, but I'll investigate if time permits.
If you can provide a non-hardware "loopback" benchmark for the rPi and your OpenWRT image, I can try to help if needed. I'll try to get up to speed on my own, but I imagine you'll beat me to the correct answer.