It is hard to know exactly what you are doing from what you write. But if the value in the formula bar is 12.5, that is the value that excel is storing in that cell.
If you have actually changed the formatting to text, the string 12.5 should appear in the cell and be left-justified. So either what you did didn't really change the formatting, or you have a macro running which is changing the formatting back to number with
zero decimals.
Also, you write that you are using data validation, but you don't write what the data validation rules are.
If you can't figure out how to change the formatting and "make it stick", I would suggest uploading a copy of the misbehaving workbook (sanitized as necessary to remove sensitive information) to a sharing web site (e.g. Skydrive), and post the link here so
we may examine the problem more thoroughly.