Custom Fields and Custom Login Form

I am trying to create a custom login form with more fields than the standard email address/password.

In other implementations I have been able to add custom field data to the user_metadata object by adding the fields into the lock object.

However, I am unable to set the custom field data if I use the Custom Login Form instead.
Is the implementation different than setting a post-login action (as is done for custom fields using lock)?

Our implementation is requiring more design control of the login/sign up than lock currently handles.