Yeah, I do exactly that. My project names tend to be [Job Number]<Project Name><Upload/Working/Final>-<Date>[revision ID, for example lower case letter 'a', 'b']
So upshot of that is -- I'm not sure what my answer is to your question. Have to cogitate on it a bit.
OTOH, I was thinking that having a very deep recent list, like 100 entries, and display all the matching / semi-matching (by project or PLC name, see following) and let the user choose, might be workable.
Another approach is for the PLC to have an internal name distinct from the PC file names. That's what AB does. Then that gives you another parameter to match, can even act as a screen. Find all the projects with matching PLC names, then some combination of display for user choice and further check for logic equality. You could do some digest number of the program as a quick equal/not equal compare (I assume you're already doing that).