After power cycling the robot, I can connect and enable the robot once. After I disable it, I lose communication on the DS, but the rio comm light is still green.
It sounds like your code is crashing. What language do you program in?
We had the same symptoms until we upgraded the RoboRIO image (2018_v16 to 2018_v17) and the CTRE Phoenix (CAN) library (I think 220.127.116.11 to 18.104.22.168). I think we hit this issue:
Make sure your system is up to date!
This is probably the cause, now that you mention it our problem did start happening after we added some sysout’s for debugging.