I just went through this with another user earlier today. If it works for 3, then it is probably a BCC limit issue. You mentioned earlier in the thread that you had it set to 100, have you tried a lower setting (e.g. 30)?
I would next trying to send it to about 10 users and see if that works ok.
The sending logic is only different when 1 user is selected. Anytime more than one user is selected (2, 10, 37, 67, 1000, etc.), the same logic path through the code is used.
The only thing that is different is how many emails are sent and that is based on the BCC limit setting. If there is no limit, which is the default, it sends one email with all recipients on the BCC line. For any other setting, it will send some number of emails, depending on the BCC limit. If the BCC limit was set to 30 and you had 67 recipients, it would send 3 emails: The first 30, the second 30, and the final 7.
Near the top of the email-users.php file (within the plugin directory) is a declaration for MAILUSERS_DEBUG. It will be set to false. If you change it to true, Email Users will output a bunch of information into the PHP error_log. One of the things it outputs is the email headers so you can actually see what they look like.
If you are able to enable debug and look at the error_log, seeing how the headers are constructed is very helpful in chasing down this problem. In most of the cases I’ve been asked to look at, the email header is correct and it is the underlying server (Email Users uses wp_mail() which by default uses the PHP mail() function) has an issue with the number of addresses in the BCC field.
Has your host implemented any sort of throttling lately? Do they limit the number of outgoing emails per hour? There have been some requests to add scheduling to Email Users to account for outbound mail limitations but at this time, doing so is outside the scope of the plugin.