I've tried to sample the surrounding areas but it looks blotchy when I apply it. Coloring over it is even worse as the color is too even and 2 dimensional:-(
You have to use a VERY small, soft edged "paintbrush", and sample often. Just paint the details in, over the "bad parts", on a separate layer, as if there weren't any catch lights there, zoomed WAY in. When it looks perfect, you are right, the painted part is usually too smooth. I usually add a very small, (appropriate) amount of noise, (often about 2.5), and, then, a very small amount of blur, (often about .3), and Edit>Fade the gaussian blur until it looks perfect. Sometimes, I add two different amounts of noise, with different amounts of blur to get the texture perfect. You will have to get very familiar with these tools, then experiment, to get it right.