People say to dig down 6 blocks and have 6 doors on ground level. Does it have to be exactly 6? Can it be more or less? Is that from the bottom of the door to the block the villagers feet is under? Also is there anything wrong that would prevent villagers from reproducing in this picture?
The height difference has to be 6 or more but cant be more then 32. I generally do 10 to be safe. Also, there can be no doors other then on the level with the single villager within 64 blocks.
As to the number of doors, it has to be at least 6. It can be more if they are placed in the right position, but you don't need anymore then 6 for this to work. It is a waste of doors. With 6 doors, they will continue to breed infinitely.
Generally speaking, I have one villager with 6 doors, all by his lonesome. Then 10 blocks above or below him, I have the villagers that I want to breed.
What is happening is the single villager and his 6 doors create a village that should have 2 villagers. The villagers above/below him are considered a part of the village which means they are in breed mode, but they are not counting in the village census. So it is a village with 1 counted villager and other villagers in breed mode which are not counted(and neither are their offspring) so they just continue to breed. Here is the wiki on villager breeding for more info.
Additionally, if you supply the breeding villagers with a farm and have at least one brown coat villager, he will farm and feed the breeders.
The villager has to be outside the village. Internally, the village is a sphere which extends quite a bit more than just all of its houses. So I don't think there's ever a case where 6 blocks are enough.
There are many factors to the size of a village. If you really need to know the minimum distance, you can open a copy of the world with the village info mod installed. Otherwise, just go a few hundred blocks away, that should always work.
If you have much time, you can also see at which point the villager starts to behave differently. For example villagers try to run to houses at night, but only if they are inside the village range.