The RailWorks's scenario editor is sometimes rather fussy, confusing and limited to work with in some ways, especially in trying to have more complex actions happen.
You can only really set a "start time" for the AI trains to carry out it's instructions, and do your best-guess in "approximating" what time to start so that it appropriately "jives" with that instructions and actions the Player and Player's train are doing.
In here can lie a conundrum, as the Player can be going perhaps a lot faster, or a lot slower, than you anticipate, therefore the AI train's "start time" no longer "jives" with the approximate times in which you expect the Player's train to be at a certain time.
Depending on the particular area of the track infrastructure where said activities and instructions are to occur, if there's automatic-junctions involved, then the RailWorks Dispatcher may set the appropriate junctions in question to a path to allowing the the train to proceed down the path it "thinks" is best, and also according to train-priorities, and also according to if anything else is blocking it's path or not, or if track on it's path is clear.. etc...
Anyways, in my experience, though I can program some fairly complex instructions for the Player train to perform, I usually keep instructions for AI trains more "simplistic", and try to ensure that the Player's train and the AI trains will have a "clear path" to perform their instructions. Otherwise it can be easy to run into "pathing" conflicts and scenario-breaking errors.
I tend to set the Player's train "priority" a bit higher than the AI trains as well.
You could experiment with this (train priority settings and start-timings of AI trains, junction-settings and programmed instructions to perform) and see what results you may get, but like I said, it can all easily get thrown out-of-whack if the Player drives a bit too-fast or a bit too-slow than anticipated, thus, greater potential to cause pathing conflicts with AI trains and scenario-breaking errors to occur.
So when it comes down to it, in the end I try to have the AI trains follow the "KISS" method, "Keep It Simple, Stupid"

and tend to keep them at a lower-priority level than the Player's train.