update clients on startup if values differ

@rfk r? :dancers: 
I *think* I understand why this swapping of `secret` and `hashedSecret` is necessary, but it feels a bit weird...could we e.g. change some other functions to skip over this property rather than having to delete and re-instate it?