I would start with investigating the precondition.
- If it is a calculation, copy the calculation and paste it into a new condition on the process. (You don't have to save it, just use it to test it on the incident/change that you are expecting to Move On and see if it returns true.)
- If it is a standard precondition, verify that it is looking at the correct object, attribute, condition, value (should it only be looking at the latest value?.) etc.
- You could also try removing the precondition or putting in a new precondition that you know works already.
It might help if you paste a picture of the condition details.
the process will also stop if there is more than one status that will be skipped automatically. E.g. your ticket is in status "Open" and will continue automatically to an Add Assignment, that will put the ticket into status "Start SLA". The "Start SLA" now determines, that your ticket is a Business Service and should continue automatically. That won't work. Only one status can be skipped in the process without manually committing an process related action.
Maybe that is your problem?!?