Just another note: It appears that for some reason the collision detection is not detecting hits from two different directions in the same pass.
With a few added print statements - and some modifications to the code - I am detecting a hit from the left in one pass, the next pass shows a hit from the top, then the next pass shows a hit from left, etc. So unfortunately the modifications to the code that I made, which was supposed to lower the amount of blocks used and make it easier to follow, does not work.
In the attached screen shot you can see my major modification to the code. You can also see the blocks next to the collision blocks, they should actually be in place, but I wasn't getting any prints as a result.
It appears that the better solution for this would be to check the current direction of the player as well as which side the player collided on, then change the direction depending on the results.
I will try that approach.