Well, the sprites can simply have two different groups of states, one for "wet", one for "icy", and when switching states, just switch locally based on the current group.
As for the animations, you can still use a counter for the difference between normal and icy by finding the lowest common multiple (LCM) of the lengths of all of the animations in the animated tiles and resetting the counter to zero when it reaches that value, then add that amount when turning icy. You would just have something like:
N1 N2 N3 I1 I2 I3
Where N = normal frames, I = Icy frames. The LCM here is 3.
Another option would be to add 2 instead of 1 to the counter every frame, and interleave the icy frames in between, then offset the counter by 1 when it turns icy. If you would like an example, just ask. It would look something like:
N1 I1 N2 I2 N3 I3