Peter, a few things to check
- Make sure you are flattening the image. By the looks of the original image on the right you've still got layers active
- Also the image on the right is still in 16bit format. Drop the image down to 8-bit before proceeding to save the file as a JPEG.
- If you find that when you drop the image from 16bit to 8bit it gets dark - check the mode - Is it in greyscale or RGB? Even if you've got no colour information convert it to RGB so it falls into alignment with the colour space your using. Its good to get into the habit of doing this.
- Talking colour space - check what your processing with. i.e. aRGB or sRGB. While I understand this image is only monochrome, how the tones are mapped/present willl differ between the two. If you intend to print the image go with aRGB, but if you're only displaying the image for web presentation - sRGB is best option as all monitors support the gamut. I sometimes process the image is aRGB only, then towards the end of the routine I save the file and call it "xx-print", then convert colour space to sRGB for final touches before uploading it do the web. That way you've got two versions - one for prints, the other for web presentation (of course, keep both originals as 16bit).
I'm not sure if you're doing any colour calibration on your monitor, but soft proofing can assist if you are validating against either windows RGB or monitor RGB. Probably deviated way off the original question, but hope this helps in addressing your issue.