two suggestions:

make a fittnes function, based on the amount of "needs" beeing fulfilled.
For example:
no hunger/no thirst = 50%
having a falimily life = 20%
having a good job =20 %
having religious bonus (praying) = 10%

this way, the villagers will be selected at not just surviving by eating and drinking,
else there is not selection-pressure to do the other things.


Also you should not use a pathfinding (the village know how to reach the locations automatically)
Else the simulation will get quite slow, and thus the evolution is progressing quite slow.

The pathfinding could be developed by seperate genes is a seperate simulation.