I would not use individual tables for this.
By "state", you mean that each file entry can be listed as "Submitted", "Selected", or "Shown"?
There are any number of ways to make sure that your finds filter out all records that aren't in the specified state--even finds performed manually from the records menu.
That is what I mean by state, and I'd like each to have a separate layout. How it goes is for 8-10 months we'll be using the Submitted layout, followed by about a month of transitioning to the Selected layout, and after the festival using the Shown layout.
Can you direct me to some of the ways to filter manual finds. I'd thought of adding a custom search field, but my colleagues will likely still use the default Find tool.
Also, I know it sounds picky, but I'd like the record count displayed at the top to reflect the current state. This year we selected 56 films, so I'd love for it to say 56/56 rather than 56/183 (183 being the total number of submissions).
On your "submitted" layout, enter layout mode.
From Layout Setup, click the script triggers tab and select the onModeExit trigger and select "Find" as the mode being exited.
Have it perform a script patterned after this example:
Enter find mode  //clear the pause check box
Set field [YourTable::State ; "Submitted"]
Set Error Capture [on]
Constrain Found Set 
This script will kick in after any find performed by the user to further filter their results to drop out records that don't have "submitted" in the state field. If you use a different value to mark a record as "submitted", you can alter this set field step accordingly.
I'd like the record count displayed at the top to reflect the current state.
That is picky and cannot be done. But you can hide the status toolbar and put your own controls on the layout that display this information.
Brilliant! I had no idea you could set a trigger on find, that's awesome. Thanks again, you've saved me hours of trial and error