Have you ever used the Threshold method? It has helped me in many of my photo.
On the bottom of the layers palette there is a symbol the looks kind of like a B&W cookie. (or go to Image< Adjustment < Threshold) This will create a new layer called Threshold 1. You will need the Color Sampler Tool with caps lock on so you can get the cross hairs.
Move the slider of the threshold all the way to the left and white out the photo. Slowly move it to the right, as soon as you see some black click OK. Zoom in all the way and mark it with your Color Sampler Tool, a cross hair will appear on your photo.
Next, you will need to click threshold layer on the BW cookie to get your slider back up. Move it all the way to the right this time. If there is already white there, click on that, if not, slide the arrow till you just start to get white. Same thing, click OK and select the white area.
Now you can turn off your Threshold Layer. Now to set the grey point, you want to have the info window open to where you can watch the numbers of the RGB as you scroll across your photo. When the R hits 128 or as close to it as you can, you can set your grey point the same way you did the B&W points.
Select Curves via the cookie at the bottom of the layers palette. It will open up another layer named Curves. You select the eye dropper for Black and hover over the cross hair until it disappears, and click on it. Do the same thing with both your white point and grey point.
Lastly, all you need to do is mess with the RGB in curves and set the following settings for your white, grey and black points.
Black: 5
White: 245
Grey: 128
I hope this helps and I didn’t confuse you to much.