You're asking for quite a bit, and all I can really tell you is that you get what you pay for.
Why you should avoid "free" sites
Most free hosts are pretty much bargain-basement deals when it comes to features. Remember, few people will ever give things away and stay in business - so support on a free hosting site might be non-existent. Many will also flood your site with advertising (that you don't benefit from) and annoy your visitors.
A notable exception to this rule, though would be WordPress.com. Automattic is able to make money in other ways, so you can get the benefits of a free site with fantastic support.
Why free sites don't allow custom themes
Most free WordPress sites are single Multisite networks - this means one installation of the WordPress software on a single server (or server cluster) with a shared user base, shared plugins, and shared themes.
Giving anyone in that system the ability to use custom code (custom themes or plugins) is a huge risk. Any one person in the network can add a script to their site that breaks the sites of everyone else or brings the entire server down.
That's why inexpensive hosts will fully vet themes before installing them on the server and restrict you to only a pre-approved set.
What you can do instead
The chances of finding a free WordPress host that allows custom themes is ... honestly ... zero. It's not going to happen. And if you find anyone claiming to offer that deal, you should really run away from them screaming.
Instead, think about what it is you're trying to accomplish. Most of what you'd need to do in a custom theme you can do with a custom CSS file. WordPress.com, for example, allows that.
If you really do need a fully-customized theme, your best bet is to host yourself.
Some shared hosts are pretty inexpensive. 1and1 (one of the sites I use) offers basic hosting at $5/month. For just $7/month (after 6 months free) you get a step up in service and a free, custom domain (.com, .net, .org).
Some other relatively inexpensive hosts:
Some freelance developers (myself included) will even host clients/friends/family as well. I've hosted friends for $5 or so each month and given them a domain of their own.
It all depends on what you're doing and who you know ... but if you're looking a hosting plan with any level of customer service, and any form of security against hackers, "free" is pretty much impossible.