Hmm. I don't see anything wrong with it. You could try using different inputs to the train, like SetSpeedDir with 1 and -1 (might need to turn on Manual Train Speed for that), but that may not help... your paths don't have anything odd on them do they?