Best "multi-task" structure for handling multiple serial IO

After reading much of the reference and reviewing numerous examples, its not clear to me which approach I should take for
my situation. Please consider offering me as much detail to a
Dynamic C based code structure that would provide the most
optimal handling of my data interface situation using a

I will need to use 3 serial ports for the following operation:

Async Port C (115,200baud): sensor device I/O

Async Port D (9600baud): motor controll I/O

Async Port E (115,200 or higher baud): off system telemetry/control I/O

I want to avoid using Port A/B for other reasons.

The overall software structure will operate in 2 main modes
Router and Control. In the case of Control mode, a control
loop will use sensor input and descrete bit monitoring to
control the system, where telemetry will be sent periodicall to
an off-system laptop via XBee wireless. Although this mode
will have it’s own performance issues, please disregard for this

However, in the case of the Router mode, I would like to relay
sensor data and motor control status off-system via port E/XBee
and have control loop be managed off-system and then be feed
back to control motors. so, the uP will primarily be routing serial data between ports. As I will need more data relayed off-system than in Control mode I consider Router mode to be more comm sensitive and require the best and most efficient handling of
byte io.

Its not clear from the documentation how effective cof_Ser*() operate for multiple ports, etc.

Please consider my situation and offer detail on your opinion of how to best structure the data handling the routine of input and
output between ports.

Again, in the worst case I/O, data from sensor will be routined to
telementry, status from motor will be routed to telementry, commands will be sent to motor control (low rate) from E to D or
to Sensor C. I realize routine 115,200 baud data from C to E operating at the same rate will reach a limit, but I will be able to
filter some messages coming from sensor using a simple test.

I look forward to your thoughts. Thanks