I believe - without any testing whatsoever, since I don't currently have a compiler installed that can deal with Manalink - that all that needs to be done to enable this in dev is
- Enable the five snow-covered lands in Manalink.csv
- Remove the check for is_basic_land() from is_snow_permanent() in cards/ice_age.c
- Add the five snow-covered csvids to is_basic_land_by_id() in functions/functions.c
- Grep for each of CARD_ID_PLAINS, CARD_ID_ISLAND, etc., as well as CARD_ID_SNOW_COVERED_PLAINS etc., doublecheck that the checks for the non-snow ones really only mean those specific cards, and that any existing checks for the snow ones are enabled. I currently see:
- Myriad Landscape will only let you search for Swamps if you choose a snow-covered land as the first card. It should be looking at the five land subtypes anyway, though I don't think it's currently possible to change those for cards in your library.
- Gangrenous Zombies looks specifically for a card named Swamp that's snow (so it won't see a Snow-Covered Swamp, just a non-snow-covered Swamp that's been made to be snow). It doesn't honor Magical Hack, either, and again should be looking for the swamp subtype, not name, anyway.
- land_into_new_basic_land_type() in the_dark.c (why it's in that file is anyone's guess) will probably want to convert snow-covered lands into Snow-Covered Swamp etc. instead of Swamp. But land conversion in Manalink is already all kinds of broken anyway - it doesn't preserve the card name or legendary supertype, adds the basic supertype, and so on.
- Gaea's Touch looks like it won't currently allow anything; it should pass SUBTYPE_FOREST to get_hacked_subtype() instead.
- Maybe allow the snow-covered lands in is_beta_land() in functions/challenge_mode.c. Or maybe not. Judgment call.
- Enable the checks for the snow-covered lands in unlimited_allowed_in_deck() in functions/rules_engine.c
In particular, none of the cards you list above except for Gaea's Touch look like they'll need fixing; all the others that are in Manalink already correctly look for basic land subtypes, not the five basic lands themselves. - Replace the basic lands with their snow-covered versions in all the gazillions of decklists that are floating around. This can be Somebody Else's Problem except for the ones distributed with the game itself.
If you were paying attention while changing land_into_new_basic_land_type(), you've seen the hard part - the internal_card_id's of the five original basic lands are 0, 1, 2, 3, and 4. Those are impossible to grep for in the Manalink source, and even harder to find in the magic.exe decompilation. For example, sub_47EF50(), which implements the check for TARGET_SPECIAL_BASIC_LAND in the targeting selection and validation functions, checks for basic lands this way (though this specific function is probably not a problem, since nothing directly in the Manalink source uses the TARGET_SPECIAL_BASIC_LAND flag anymore, and I don't think any cards Manalink calls into magic.exe for do either).