Either I have not understood this film or it is full of paradoxes.
The Source Code allows its user to experience the last eight minutes of another compatible person's life within an alternative timeline. That part is not hard to understand.
The bomb explodes in the Chicago train and kills everyone on board. Through the Source Code's alternative timeline, Colter Stevens is made to experience the last eight minutes of a passenger on the train so that Stevens could identify the bomber who is supposed to be on the same train. But in the end, Stevens is said to have averted the bomb explosion in the alternative timeline, effectively modifying the history. That part is creating some confusion.
Does Colter Stevens really manage to avert the bomb explosion on the Chicago train? If so, why was Captain Goodwin trying to get Stevens to find the bomber after the explosion? And how could the explosion be averted? (Not possible even from a 'fictional' point of view, unless we say that the Source Code program allows its user to travel back in time, which is actually not the case)
Edit: Removed update