for the essence:
catch a pokemon and delete a pokemon should give also some bit of essence. (delete a pokemon also because you dont delete it but you will let it free) <-- at least it is wat its says in the games.
I would think it is maybe better to have for each pokemon typ a booster and this booster will only cost essence from the corosponding pokemon typ.
For Example: fire booster will cost fire essence only.
With this you dont will be in trouble to fight fairy or dragontype pokemon (or other types of pokemon).
I hope for a good discussion about my suggestion in the commens. Maybe I can enrich my suggestions with your ideas.