I attached a map with an example of what you could do.
How it works: I store points around the Caster in a 5x5 area. Each terrain tile is 128x128 units so by knowing this we can calculate a 5x5 area of terrain easily. In my trigger I map out points starting at the top left corner of our area. I end up storing 25 points (5x5) and I store the terrain at those points too. Once I've stored everything I then set the terrain at these points to snow and then after 5 seconds I return the terrain tiles back to their original type.
You'll notice that instead of a 5 second timer, I use a dummy unit that casts an ability based off of Channel. The ability has a 5 second follow through time which I triggered so that when it stops casting the ability (because it has finished channeling) we set the Terrain back to normal. It's not the most efficient solution, but well, I was feeling lazy and it works just fine.
Note that the trigger will ignore terrain that is already Snow. This is because there was a problem in which the snow would end up becoming set as the "original" terrain-type (happened if we overlapped casts) and would end up staying there permanently. So by making it ignore the Snow it fixed this issue. However, now you'll notice some weird interactions if you spam the ability around the same area, like patches of snow instead of full 5x5 squares. It's not a big deal and you'll only notice it if you're spamming the ability like crazy.
Edit: Re-uploaded map
Edit 2: Updated map. Added a Terrain Variation variable to track the different variation types of each terrain tile.