Hi Erin,
Yes I would suggest setting up the batch campaigns as smart campaigns within the program.
Use the "Member of Program" filter with a status constraint -- one for each status you want to correct, to keep it simple. Then in the flow step, Change Status in SFDC Campaign to the matching status as in your smart list.