I suggest reading the command based programming guide here and exploring the GearsBot example in eclipse.
http://wpilib.screenstepslive.com/s/.../13809/c/88893
Your problem is that you're declaring your sensors in SensorData, and then creating instances in each of your commands that extend it. This causes multiple allocations, the same root cause as your last issue.
In the Simple Subsystems page, notice how a subsystem contains the hardware, while the command invokes the methods provided by the subsystem. That way hardware is only instantiated once.