Yes, from what I gather, the problem with Show is that the check to make sure that it places popups in viewable area fails because the test doesn't realize that there is a left monitor. This is somewhat odd considering that you can use the geometry command to put the main window there.
Indeed, I have come up with a work around. It's tacky, but it works. Rather than fight Show's limitation, I use it as is, letting it place the popup incorrectly. Then I use a geometry command to move the popup to where it should be. Since your code stops running after the Show, I came up with the following way to accomplish this.
Immediately prior to the Show I added the following.
$mw->after(2, \&Popup_Position_Fix, $popup, $popover);
The Popup_Position_Fix routine does some calculating then executes a geometry command on the popup. As I said, tacky, but it works. :)