We had an issue in 9.04 where using the Finish-to-Finish Scheduling for operations (Job Entry - Job Details/Operations/Detail/Scheduling Factors) was causing jobs to behave like this in scheduling. The jobs that did not have operations utilizing this behaved normally.
Epicor recommended changing the problem jobs to Start-to-Start with a send ahead offset for similar results and the problem was solved. I'm not sure if the most recent patch addresses this issue but it was a problem on a late version of 9.04 and we haven't experimented with it since we've moved to 9.05.