The way your AI is structured with multiple periodic loops generating orders is not recommended as you then have to deal with order conflicts (so that one decision loop does not interact with the other).
In your style of map I would suggest a single loop that does attacking, evasion and movement with an update period of ~0.1 seconds (the average latency human players suffer when playing in multiplayer). In such a case you can start by checking if there are any visible enemies nearby, and if so then proceed to attack/evade otherwise simply look to move around somewhere (possibly even at other players for harder cheating AI).
In such a map evasion is probably key so you start by trying to generate an evade order. This is done by having a list of "hazards" which you then process through for appropriate ones and move out the way of any you are in. You generate hazards every time someone fires an arrow. They are destroyed (removed from list) every time the arrow falls (stops, finishes etc). All AI could filter the same hazard list removing friendly hazards (ones which deal no damage) and hazards that are not appropriate for the unit (no one cares about a hazard on the other side of the map). In the case of simple line hazards it is always most efficient to move diagonally away from the hazard (no cartoon style bolder chase situation). Evasion is possible both directions in case there is an active hazard in the dodge location. If both directions contain hazards then ultimately it should try and move into the hazard with the lowest weight (hurts less) but this can probably be ignored and the AI can instead "grit its teeth" and move on to a counter attack.
Attacking is pretty straight forward. Shot at standing still targets. Shoot in front of moving targets. Possibly add some randomness for difficulty adjustment or to make AI less predictable. The tricky part is to make learning AI which is a lot more effective than standard prediction AI. You could profile players to some extent recording how they respond to hazards. For example if you shoot a hazard in front of a player if they respond by stopping after a few times (random number for no predictability) you try shooting at them and the player might stop right inside the hazard. Although that would give better AI performance it probably is excessively complicated.