Hey Blair,
It looks like your smart campaigns are just for managing Program Status, other than the Send Email, that right? If so, you do not need to have a Program to consolidate the campaigns, they can live inside the Engagement program.
What is the purpose of the Send Email campaign? If you have set up the streams, it seems unnecessary.
And you can reference your emails by the full asset name which includes the Program Name. For example, in your Opens Email campaign, your trigger would "Opens Email", your logic would be "starts with", and the email 'name' would be "Nonprime Canada."... see what I mean? The campaign will look for any email from your program and when it is opened, they will qualify for your flow.