Paying zero attention to organizing your patch will result in things suddenly not working because moving one item around can change execution order. You need to understand that what you're asking the people on this list to do only requires them to follow all those lines around. That doesn't require expertise. It's something you can do.
My suggestion is to start from scratch again and try to organize yourself a bit better. Try and make your order of execution explicit. If there are too many patch cables crossing each other, you're doing something wrong.
Here's an example of tidy patching technique. I'm not saying I'm gods gift to programming but look how, in this patch, you can actually determine what is happening step by step. You don't to be it's creator to follow it. People on this list could trouble shoot it relatively easily.
Left justifying seems to help me. Never underestimate trigger, message, zl or lobjects to get the nitty gritty done. Another vastly underrated object is Value object. In most programming languages, the variable is key at every step of the way. In max, it gets overlooked because we use patch cables to send information from step to step. Using value allows you name things!
If you need to jog data around the patch, use send and receive in strategic ways. Don't just drop them in arbitrarily to make it pretty. A clue that you are using them right is if they have descriptive and generic names like [receive turnMachineOnOff] as opposed to [receive upToTheSwitchObject]
Another good strategy for organizing your patch is the fabulous oo objects.