Towers try to be "smart" and therefore messing with you, I'd guess.
attack priority seems to contain reasonable information.
Basically, units with high "priority" is used for AI default attack priority.
To force the tower to target something in a specific situation, you will need to trigger it.
I would've used
Damage Engine 5.7.0.3 to detect when damage is dealt from a hero to another hero, and search for (alive, enemy) towers within the attack-range for towers, and order it to attack the hero dealing the damage.
There might be a better solution, but at least this is a solution