The navigation is a server side include php file
In IE9 and Chrome it is on one line, but in Firefox, it shows up on two lines
First, fix your code.
Go to the W3C Validator and go through the 59 errors in your HTML. That may very well fix the problem.
Firefox tends to be a little more literal with respect to your code than the other browsers, which may be more forgiving.
55 of the issues listed indicated a > missing -- upon further research, it was there.
I did see the CSS error and fixed that -- it was missing a />
The original issue still exists.
php code has nothing to do with Firefox; it runs on your server and is never exposed to the browser. So unless the php code is calling something that Firefox doesn't work correctly with (like HTML or CSS that is deprecated or just plain wrong) you can write php code to your heart's content and the result will always be the same, no matter what the browser. Your server's support for php is at issue here, not the client.
With respect to CSS, Firefox supports CSS3 (which is not completely standardized yet) with the proper vendor prefix. Here is a test for all browsers which should help you understand what is compatible with CSS3. Currently, the latest version of Google's Chrome is scoring 64% on this test. Firefox 19.0./2 (currently the latest version) scores 58%.
I would say that a lot of the properties, selectors and values in CSS3 are not yet standards, so these scores are showing browser compliance and non-compliance in something that is not a standard yet.
Firefox does support all properties, selectors and values of CSS2.1, which is the current standard. I'm not so sure that Internet Exploiter versions lower than 9 do.