Non ho analizzato il codice: e` molto complesso e non ho tutto il tempo necessario.

Comunque potrebbe essere un effetto collaterale dell'uso dei float non correttamente chiusi con il clear.
Prova a controllare i vari blocchi, e studia gli effetti del float e clear.

Potrebbe esserti utile anche l'uso degli strumenti dello sviluppatore dei vari browser (in FF si chiama developer bar, ma ci sono equivalenti anche per chrome e IE).