Making stop-motion style vertex displacement/

There’s probably a simple function answer to this but does anyone know how to create “held” changes in shaderlab (eg the displacement choppily changes every 5 seconds) or is this better done through linked C# code?

I’d say do the timer via C# and only update a float on the material every 5 seconds.
Otherwise you’re probably ending up with a very messy shader, which is hard to maintain and might perform worse