Notice the delay 300. It I decrease it to 200 the receiver no longer works.

For the uninformed, 9600 baud using FSK for data transmission is the limit at 900 Mhz since you must modulate the carrier wave. Going up to 2.4 Ghz radios will not work because while the data rate can go up considerably, the range falls apart becasue 2.4 Ghz will not penetrate more than 1 wall reliably. I need to transmit from inside the house to receivers in the yard ( several receivers actually ).

I am going to go to the single long integer. I will use 5 groups of 4 bits to run 5 outputs in PWM which will give 16 steps of dimming to those outputs. Then I will use 7 more bits to control the remaining outputs as on and off only.

I am going to try the example at the Arduino web site http://arduino.cc/en/Tutorial/Dimmer

Your serial receiver code is all wrong. You are assuming you can read many many characters that have not yet arrived based on using only one serial.available command, plus I'm sure you have other faults in the receiver logic but the first one above is a show stopper. Serial.available returns the amount of characters you can read and are avalible for your use, you can read no more characters unless you know for sure they have arrived and are waiting in the software buffer holding them. The way you are using serial.available will trigger when the very first character arrives, yet you go ahead and assume many other characters have arrived and read bogus characters into a bunch of variables.

This needs a rewrite once you get a better handle on how serial works and the need to deal with each individual serial character when it indeed has arrived.

You know that there is a library available that will do your transfer of variables from arduino to ardino via serial all automatically. Just a matter of putting the required variables into a single structure on both ends and using the easy transfer library. Good stuff, give it a try.