You may need to program your own terrain tags so that the effects you desire will happen with every step on that terrain. Using events may use up too much memory if your map has a lot of poison/lava terrain. If your terrain causes a status affliction, make sure to check if the affected Pokémon can suffer the affliction as certain types are immune to certain status afflictions or if the Pokémon already suffers an affliction.
If you know how to program your own encounter types, you may define a different set of Pokémon appearing on your new terrain. E.g. Grimer, Muk, etc for your poison and Magby, Magmar, Slugma, etc for your lava.