Thanks for the analysis captain.
I found the first problem shortly after posting.
I found the second issue this morning when I was able to pick this little project up again.
Issue number 3 was the "real killer" as you say. I put my solution together, and couldn't see the side effects of other errors while this issue remained. Once kappa pointed out the underlying problem, I was able to solve the other issues pretty quickly.
Thanks again for taking the time to look at my code.