It can be done, but you'd need some advanced editing tools. You don't mention which image editing software you have available. So I'll give a few suggestions using examples form PaintShopPro's tools that I'm familiar with.
You have several routes you can take.
I would first try using a manual color correction tool. In PSP, this tool allows you to select an area (in your example, one of the blown-out green patches), then select a desired-color swatch (or use a color picker to select a color already present in the photo). It tries to match that hues in the selected area to the new color/intensity without overly affecting the rest of the colors in the image.
If you don't have that, you might have some luck with a standard color-replacer brush. Again, setting a tolerance for it to match values that would cover most of the hue/intensity range of the light areas that you are trying to replace. In PSP this tool acts as a brush and you can sweep over the areas, only affecting the color that you are trying to match and replace.
Another option would be to use a mask, selecting the light-greens, with a 1 or 2 pixel feathered border. Then you could flood-fill the light areas with a new color, or even a new texture/pattern that you've copied into your color swatches right from the original photo.
You might also try using a "curves" adjustment tool, to lower the overall contrast of the image, while also dragging down the highlight values towards the mid-tones. Don't be afraid to darken the whole image some, it's the only way to get some more intense colors in it (bright highlights can't convey much color, as you've noticed). Then apply more saturation to the whole flatter and darker image. Then readjust again with the curves adjustment to give it more contrast again (or use a standard contrast enhancement tool). I've had some success with this method in the past.
I've had to replace blown-out yellows in butterfly-wing patterns in the past, where they appear nearly white. These are some of the methods that I've used.