I haven't opened the program yet, but...
This is probably going to be something that you can only figure out while online with the controller during the situation.
Start at the rung that controls the output and backtrack.
Find the condition(s) that are keeping the output low, and search for their sources.
I am still young (been doing this since '96) but, I have never seen any model of Allen Bradley PLC run with a corrupt program. I have never seen one in RUN mode fail to do exactly what it was programmed to do. Every situation I have seen where the PLC-5, SLC, or Micrologix had a hardware issue or corrupted logic resulted in a FAULT LED and shutting down. If the program is corrupted, it will erase it, too, and force you to download a valid program before it will go into run mode again.
If your suspect PLC is staying in RUN mode, the problem is going to be with the way the program itself is written, one of the settings coming from a communication channel or something along those lines.
What you are seeing is not all that uncommon, especially with complex machines with a lot of code. The more code, the more I/O the more likely the programmer made a mistake, or failed to think of everything that could happen.
It is likely that restarting the PLC (power cycle) gets it going again because of what goes on in the controller during prescan.
Now, something you might try to get the whole program attached here:
1) save a copy with a new name...this alone can reduce the size of the database.
2) export the database (comments and symbols and I/O documentation)
3) delete the database and save again.
4) zip the program (with empty database) and attach it to a post
5) zip the database files and attach them separately (so we can put the comments back in it!)