If I understand this correctly, you cloned the corrupted smart campaign, shortened the wait steps, and it works fine.
I would remove all leads from flow in the corrupted smart campaign, create a new smart campaign that picks up where that one left off, and add them all into the new one.
If you don't have forks in your program this will be easy, but it can get complicated if you have any sub-campaigns.