Your proposal requires coercion - you need to coerce the taxi drivers, you need to coerce the sellers at the markets and you need to coerce the schools. There is no way to do this in a just way.
Why should taxi drivers be obliged to take home whoever wants a taxi? They shouldn't. It is their choice. Of course, they have a monetary incentive to, but if they ultimately decide that their preference overrides the monetary benefit of ignoring their preference, then it is okay. The same argument can be extended to sellers at markets and schools.
You also forget that the competition of the market deals with these factors quite well. Let us assume there is initially discrimination against homosexuality for no practical reason (e.g.: there are no statistics that show they are worse teachers), then employers will take advantage of the low cost that is assigned with them (due to low demand as a result of the initially assumed discrimination). The more cost-effective schools will thrive and survive - these are the ones that are willing to shed their discrimination for homosexual teachers in order to get cheap, yet effective teachers. This means that schools that have the objective at hand (providing a quality cost-effective education) will survive, while those seeking to propagate their own bigoted personal beliefs will not (they pay a premium for being too selective without increasing the quality of education that the consumers care about). Discrimination will always exist in some form, but on the whole, it is a problem that does not require the force of coercion. There is no point comparing the system to perfection when coercion does not deliver it.
There were some assumptions there:
(1) There are no statistics that show they are worse teachers.
(2) Consumers are not discriminatory.
If (1) is not true, then it is rational for employers to be more averse from hiring homosexual teachers. There is nothing wrong with favouring better teachers.
If (2) is not true, then the consumer may desire a homosexuality-free teaching environment. Parents should have the choice to send their children to schools without homosexual teachers if they want, and although it may be bigoted, they should be allowed to choose a school that flaunts a homophobic hiring policy. It is their choice, not yours.