Toward the end of build season we started having trouble connecting to our cRIO. It turned out that when our cRIO booted and ran its deployed code it took up too much processor speed to run the code and connect to our programming computer properly. So we started flipping the "no app" dip switch on the cRIO every time we wished to download code to the cRIO and all of our connection issues were solved! Essentially, flipping this dip switch prevents the cRIO from running code when it boots preventing connection issues. (Of course you'll want to reset the switch before you go to play a match). I didn't want to post this until we had been to a competition and I was sure there wasn't anything wrong with our code.
If you are having similar issues this following procedure may help.
Good Luck FRC!
Luke