Something like Gamasutra: Andrey Mishkinis's Blog - Advanced Terrain Texture Splatting or Max's Programming Blog» Blog Archive » Blending Terrain Textures seem relevant to me.
I'm not sure what toolset you're using to generate the images above, but the simplest solution to the shoreline problem is to use an image format that will yield signed pixels with more than 8 bits of precision (it looks like your heightmap is an 8-bit grayscale image). Virtual Terrain Project has many suggestions for height field formats that meet those requirements.
If you're using an image editing tool like Photoshop or the GIMP, then the solution to number 6 is to find out what the original range was in your height maps in real units (say, meters) and then use the delta = (altmax - altmin) / (graymax - graymin + 1) linear relationship to determine how many real-world units are present in each gray value. A given gray value for an altitude would then be located at gray = graymin + (alt - altmin) / delta. As an example, if the original data spanned -2000 meters to +6194 meters for an 8-bit grayscale image (0 to 255 range), then each gray value would represent a range of (6194 - -2000) / (255 - 0 + 1) = 32.0078 meters. That means that the 0 altitude value in your grayscale image would be at 0 + (0 - -2000) / 32.0078 = 62.48 or (rounded) at 62 gray value. That gray value is just about 32 meters or 100 feet wide, though, so your exact costal position will be pretty wide for flat areas. If you were using a 16-bit image format like a 16-bit PNG, then the gray values would go from 0 to 65535 and the delta would be 0.125, meaning that there would be a lot less uncertainty in your image.
knocking out a selective gray range is trivial in a programming language and not much harder in Photoshop. The PS technique is to use Levels to clamp the output range from the low that you want to the height that you want (140) to the high that you want (195). Then use a magic wand or color range selection to select the dark area and bright area and then just cut them. That will give you a mask that has the original values and alpha knockout for the undesired areas. If you want black and white, just fill the undesired selection with black, invert the selection, and fill it with white.
Rivers are a much trickier task. I don't know a tool for an image editing program that will find rivers (unless you count Wilbur at software as an image editing program). A basic algorithm is to find the flow direction for each pixel (for each pixel, find the neighbors that's the lowest) and then for each pixel, follow the flow path upstream (direction of steepest ascent) to determine a potential amount of flow for each pixel. Then take that flow, apply a logarithmic operator, and threshold the result to get "rivers".