Firstly can we see your logic set up for the train? I think it only needs one logic_relay if you want it every X seconds, otherwise you can use a logic_case.
Here's the logic_case I had set up for cp_amaranth:
The entire logic case would trigger a random one of these each time it hit the finish of the track (the finish was linked to the start and set to teleport the train there through flags)
cases:
40
45
50
...
110
115
120
Each case would wait X seconds (x being the number stated), then StartForward the train again after that long.
As for a looping ambient_generic, have you set it not to loop in Flags?