I get image field upload errors with a custom node_add() form
I believe the problem is, roughly, that while you've ensured the include happens before initial form build, that include doesn't happen when the AJAX file upload processing attempts to rebuild the form... So node_form() function is undefined and things fall apart.

The solution that worked for me was to use form_load_include() in place of module_load_include(). According to its documentation, this alternate function exists for this express purpose - "ensures that the include file is loaded whenever the form is processed."