The normal grass and the left side of the tree work fine. The right side, however, changes to the left side of the tree after the snow is shaken off. I have a video that shows what I mean:
All of the tile behaviors are what they need to be. The snowy grass is set at 24 00 and the normal grass at 02 00, so that wouldn't have anything to do with it. I've tried moving the snowy grass tree tiles around the tileset, but they always get replaced with the left side of the tree when you walk through them. I'd imagine that it has something to do with the routine that has to do with the tile getting replaced when you walk through it. I've looked at all the level scripts, but I'm not too experienced with scripting yet. The second level script controls the weather changes, but I have no idea what the first one does.
Maybe that calls up the grass change routine? I don't have a clue.
I don't know for sure, but I think that the ash grass works different from regular grass. From what I can tell, stepping on the ashy grass is a sort of setmaptile-type-thing, which sets the tile to grass, which is probably why the grass under the tree doesn't work. Also, after looking at an Emerald rom, I noticed that there is no grass under any trees, which might be because of this. Finally, from what I can tell, the cmda6 command is used to call an ASM routine that activates when stepped on a tile. I don't know how to use it, but I'm pretty sure its the routine for gathering soot in a soot sack. But then again, this is all speculation. If the above IS true, then you'll either have to not have any grass under a tree top, or modify some part of the games code to make it work.
Also, if it helps, you can activate the ash grass animation in Firered, if you have alot of work saved on it. But if you're switching to Emerald for other reasons, I understand. The tutorial to activate the ash grass is here.