In ClimbSubsystem, there are two booleans that are toggled to indicate the state the climber parts are in. This is dangerous because there are now two sources of truth for the info you're looking for: the boolean, and the actual state of the solenoids.
Instead of using the booleans, just read the solenoid values directly