Prozaic, I believe the buff approach is flawed. From what I understand, your chain applies .5 second duration behavior. But if multiple cannons are firing at the same targets, then they will get confused with each others' behaviors and not fire appropriately. Correct me if I'm wrong, but as far as I know, there's no way to check the source of a behavior in a separate ability, especially on a separate unit.
Instead, you might be able to use the "Exclude +" field in your searches to exclude the target of the previous chain effect.