See
http://modpython.org/pipermail/mod_python/2005-October/019158.html
The problem is that pickling/unpickling top-level function is done by name, which requires that the module they are defined in can be imported in the usual way, or at least that it is registered in sys.modules.
Fixing this in 3.2 alone seems quite difficult. I'd rather try to do this in 3.3, along with the major overhaul of the import system.
For a thorough analysis of the problems (believed to be correct) see:
http://www.dscpl.com.au/articles/modpython-005.html
I cannot see how it can be fixed and may be a limitation that has to be lived with. Users will simply need to ensure that any module with function objects or class objects in them isn't imported using the mod_python importing mechanism, but that standard "import" is used.