The true issue you're having is that your browserCaps section of your machine.config file is woefully out of date.
So when a request comes in from FireFox, the .Net framework is assigning it as a down-level browser, which it in fact is not, and changing tags for certain web controls.
The browserCaps section is not maintained by Microsoft, but instead left it up to a third-party company
http://www.cyscape.com/browsercaps/ to offer updates (they of course are not giving anything away and therefore have not updated the file for ages).
There are newsgroups with the modern browsercaps floating around - until you find a modern one - and one that works, you are left in the dust. Also note, the production server will also need an updated browsercaps - as any machine you test or deploy on.