You can't rely on floats being printed as they look on screen and for printed output you should really set all floats to display block and use a linear type layout.
Unfortunately printed output is still the most problematic of all CSS rules and there are many bugs and browser differences to contend with. The best solution is to simplify the output into something simple. Remove all floats and positioning and overflow properties and most of the widths of the containers as paper isn't the same size as the screen.
However, I'm not getting any blank pages using your code above and adding another right float into the mix. You may need to provide a working example for us to debug properly. Make sure that any containers are not set to overflow:hidden when printed as that often causes blank pages in Firefox.