These notices are not related to the problem.
If you have the columns in the database for your fields, then it's not a problem with the mysql queries. It's probably not a problem happening when the order is created but more of a problem of when the user is logged in.
On some servers, based on the way the user session is handled, it's possible that the session data of the custom fields is lost during the login as the user session is recreated at that moment.
The simplest to validate that theory will be to move the "fields" view after the "login" view in your checkout workflow option of the configuration. That way, there won't be any user session change after the user has entered his info in the custom fields.