For range manipulation, you can do one of the following (assuming your input is from -39 to 15):
1. Arithmetic function (right click mosaic dataset in catalog window --> function tab --> insert on top of mosaic function): Choose "Plus" as operation, and use -39 constant value for Raster2. Results are "shifted" to positive range 0 - 54. You can have 55 colors now. If you're satisfied (You can have another arithmetic "times" to make it 0-254 etc if necessary), change the output type of the function (general tab) to unsigned 8 bit, then insert your colormap (a clr file ranged from 0 to 54 or else).
2. Stretch function (right click mosaic dataset in catalog window --> function tab --> insert on top of mosaic function): Choose "Min-Max" type, manually type in the desired output min/max (e.g. 0/54, 0/254, etc), then manually type in the input raster's statistics min/max (standarddeviation and mean are not needed for min-max stretch) --- in this case it's -39/15. It's easier to use it in your case compared to Arithmetic function. Change the output type of the function (general tab) to unsigned 8 bit, then insert your colormap.
Currently ArcGIS Server always convert colormap to RGB for display, so you don't have to insert ColormapToRGB function.
ArcMap's identify tool shows only one value: the value at current identify location after ALL on-the-fly processing, that is, after mosaic --- stretch ---colormap, so you'll have a RGB value. It's the system's limitation not to show values from individual rasters (before mosaic). If you make a REST/SOAP request, you'll find values of individual rasters as shown in the url of winter temperature service in previous post.