In order to get around this problem, you must first create a Permission Set that has access to the Apex Classes that are required for your Flow to function properly. After this is done, record the Permission Set Id (it's in the URL).
After that, retrieve the System User Id, this is unique per org, but the easiest way to find it is to copy the User Id that is in the Flow error email.
Once you have the System User Id and the Permission Set Id, open up Developer Console and use Execute Annmous and paste in the following code, replacing it with the Ids:
PermissionSetAssignment permissionSetAssignment = new PermissionSetAssignment(
AssigneeId = '<System User Id>',
PermissionSetId = '<Permission Set Id>'
This will assign the permission set to the System user profile and allow the Flow to function properly again