I think that in the commands you use to deploy the HP, LG or CS the value of HP (or LG or CS) is set to 1 and if you retract them the value is set to 0 again.
But what about the value of Jump Drive. In the command above you set it to 1 if HP, LG, CS and JD are 0 but is there another command where you set it back to 0 again ?
If not then that's the problem I think. The first time you run the command it works because JD = 0 but is set to 1 after the jump. But in a second run the value of JD is still 1 because the first block of your command is skipped because JD does not equal Not Set, the second block is also skipped because JD does not equal zero so no jump is made. Could you try to delete the line "Set small int (condition) [Jump Drive] value to 1" and see if that works ?
If the jumps work after that the only problem I see is that when more then one of HP, LG and CS are deployed only the first will be mentioned because of the Exit when condition met in the last block of the command so if both LG and CS scoop are deployed (value = 1) after the mp3 for the LG is played the command ends so it can't play the mp3 for the CS.
I hope this makes sense.