A few suggestions:
Reduce the volume of the train idle sound on the box train, its sound is loud and obnoxious, and other sounds, like the bell, cannot be heard easily.
make all guide bricks have no collision by default.
I assume you can do this, though I have my doubts, but for the box train, set the level of the floor of the box train on grid with bricks, so it is an equal transition. Also, though this is probably an issue with the train itself, reduce the collision box size to just the floor of the train and below, so you don't have to jump into the train to enter it.
[edit]
Also, some event suggestions: Because you said these don't respond well to bot events, why not make an ontraindetected input for use on a guide brick, and some TrainForward, TrainReverse, TrainNeutral, TrainBrake, and TrainHorn output events, triggerable only with ontraindetected. For another event, why not allow the eventer to enable/disable train functions, such as accelerating and braking, so automated trains without manual interference can be made.