So your Arduino could send RC-like (radio control) commands using PPM and you would still have GPS, AuxMag, and a port left over for something else (regular RC control, but multiplexing Arduino and RC commands would be needed). See below for other, better ways of doing this.
What you doing sounds very interesting!
I think a better way would be GPS, AuxMag, and Telemetry. Telemetry allows you to send commands (low level like bank left 5 degrees at 43% power or medium level like fly northwest at 5 meters per second while climbing at 1 meter per second or high level like fly to XYZ using velocity V) and also to receive status (like GPS position and velocity). The Arduino would be connected to an RC receiver and one of the RC channels would switch from Arduino just being a pass-through to actually controlling the vehicle (Arduino reads RC somehow, probably PPM, and sends simple RC-like commands via telemetry).
If you are not using telemetry, consider using a Y cable on the GPS so both Revo and Arduino can know position and velocity. One issue to consider is that Arduino sees GPS altitude (inaccurate) while Revo uses GPS+baro altitude (more accurate). These two can differ by several meters. Telemetry allows Arduino to see the GPS and also the GPS+baro altitude so they can be in agreement.
Learning how to read and write these UAV Object telemetry packets is a fairly difficult programming task. If you are pressed for time, it would be better to just send RC commands to Revo via PPM, but you don't have a baro on the Arduino, so e.g. when flying laterally, the Arduino, only seeing GPS, may see some variation where Revo uses GPS+baro.
The following talks about using PPM to send RC commands to Revo.
The high level where you let the Revo do a lot of the work (including using Revo baro): One flight mode (I think it is AbsolutePostion) translates stick position into compass direction and velocity. Half forward stick always flies north (at current altitude) at half the max configured velocity while throttle stick position translates to vertical velocity (there is deadband on all sticks, so you can do simple position hold with no drift other than from GPS drift).
Or you could use less of the Revo smarts and control just bank angle and throttle, without Revo even knowing the GPS position (Arduino would be reading GPS). You would need to develop a control loop (e.g. PID loop) to for instance handle flying in wind where you must hold a constant bank angle just to stay in one place. You also need a control loop for vertical velocity and vertical position, and be aware that GPS is very inaccurate vertically. That is why we fuse baro readings into the GPS vertical direction. And Arduino won't have access to baro data...
FYI, LP has waypoint flight which allows flying lines and arcs from one waypoint to another and at different speeds (etc). That can be combined with some flight mode yaw options to make a quadcopter point in a desired direction while flying in another direction. I am guessing you are focused on quadcopters, which are easier to direct from a high level once you have them stabilized and flying