The problem you are having is because you are setting 'go left' with overlap tests. Disabling solid does not disable collisions; consequently, enemies still overlap, and the var still changes. However, when I fix this by disabling/enabling cols when toggling between types, go left is always forced to 1 because one of you events is 'is NOT overlapping, set go_left to 1'.
Honestly, at this point I stopped. I'm sorry to say this, but your code is simply a mess. You have way too many overlap tests, families, and other convolutions. I feel for you, really, I've ended up with code like this myself, but you are going to have to take a fresh stab at this, and build it from the ground up, because what you've got is inefficient and unmaintainable.