There are a number of technical aspects to consider for such a venture:
- How to identify the source of the spread of an influence;
- How to "remember" the base point values that should be returned to once the external influence disappears;
- The rate at which the influence should spread;
- The spread profile, i.e. if the spread should be at the same rate throughout the area of influence, of if it should be faster closer to the source (e.g. flat rate, linear decrease with distance, [binary] logarithmic decrease with distance);
- The target value, i.e. should it push the parameter all the way to 100/0, or to some other cut-off limit (including towards 50 from both sides in analogy with value influencing books), and should the cut-off be the same throughout the influence area or vary with distance;
- Should the influence be a "wave", where a world tile acts as a new center with respect to influence area once a target value has been reached? E.g. once the Evilness is 100, distance should be counted from that tile rather than the original center if shorter, resulting in a continuous spread conquering the world unless stopped;
- Other parameters?
The next stage is to handle interference, i.e. what happens when two or more influence areas overlap. The simplistic approach is to just process the influence sources one after the other, but that leads to double the change in overlapping areas, and when opposing influences clash the result depends on the order in which influences are processed, as the resulting parameter value presumably will be cut off at 0 and 100 respectively. It's reasonably easy to handle if all influences and cut-offs are the same, but messier if they vary.
The third stage is handling of changes that affect the biome. Savagery and Evilness are fairly straight forward in that they don't actually change the biome itself, just add modifiers to it (Savagery differences in a region is already supported by DF, while the current logic doesn't check for Evilness matching if a plant/creature is DFhacked into a region's set, but that might be changed with the necro towers: if so, I'd guess all regions would be given Evil [and hopefully Good as well] flora/fauna in case some tile is changed, but prevented from appearing when the world tile's Evilness doesn't match that of the flora/fauna). If a parameter such as Temperature changes it usually just changes the particular biome, while leaving the biome type unchanged. If you don't do anything in particular, the result would be that the flora/fauna defined to be available to the region the tile belongs to gets restricted to the subset that's compatible with the new biome, which works fine if that biome already exists in the region, but gets limited otherwise. If the change is larger, such as e.g. a Temperature change into a Glacier biome, the world tile's biome no longer matches that of the Region it belongs to. This can be handled by creating a new region or shifting the world tile to belong to a matching neighboring region, but if a new region is created it would need to be given a set of flora and fauna according to some logic.
The trickiest stage is a Fortress. As far as I've seen from DFHacking, you can't add plants (apart from "grasses") to an active fortress (I haven't tried an inactive one: it's quite possible the availability structure is generated from the region/world tile data anew when the fortress is unpacked, rather than being stored with the fortress), so changing the flora and fauna available to an existing fortress may be a challenge (it was possible to replace one plant with another, but all biomes don't have the same number available to them).
I haven't touched on changes to Elevation, as it's a different level of complexity. Just turning "normal" terrain into Mountain or Ocean gets messy, and adding/removing/shifting Geo Biome layers in an active fortress would require a fair bit of thought.