Well, I don't yet see clearly everything the program does. I've rewritten parts of it in my own coding style, to make it easier, and I have a couple suggestions:
1) Comment out the Send statement and run the program again. This will result in displaying to you each of the emails it sets up, rather than sending it, so you can more clearly see what it's doing. That may show you only one email but not why, but it's a step in the right direction.
2) Step through the program one statement at a time using the <F8> key. You can see exactly what the program is doing at each point; usually this reveals the problem. Not always.
One thing I do notice, that I suspect is the cause of your problem: You create oMail outside the loop, just one time. After you send that email inside the loop, I think there is no more oMail object to operate on. I may be mistaken, but I think you need to create oMail inside the loop, creating one email object for each email to be sent.