You mentioned that you're specifying pyWorkPage as the page when opening the 2nd case. Is the 1st case on the same thread in which you're opening the 2nd? If it is, try using a different page name for the 2nd case and see if that changes the behavior at all. Since flow processing is likely already using pyWorkPage for the 1st case, opening the 2nd case onto pyWorkPage is likely to cause problems.
Directly using pyWorkPage and addressing the case instance key was the main problem of reopening the case. Now that we are able to open the old case, we face a new problem: When we reopen the ELM case in a new window, we are unable to continue to UW case as it overwrites the pyWorkPage to its own class.
Is there a way to use two separate pages? remember that we are not trying to open ELM case in review mode. We need to be able to edit it and when we are finished, we need to be able to continue to work on UW.