We've discovered what seems to be a bug creating large text fields from CiviCRM Custom Fields. I hope I'm able to explain this well enough.
Relevant environment information: - Drupal 7.59 - CiviCRM 5.1.0 and then 5.1.2 - PHP 5.5.9 (not recommended but supported) - Webform and Webform CiviCRM modules for Drupal enabled
And the steps we took: 1. Create custom fields of type text associated with a contact. Give it a very large database size, something like 6000. I haven't confirmed exactly at what point is too large, but 6000 definitely was.
Create a webform on the Drupal side with CiviCRM processing enabled. Make contact 1 for CiviCRM processing able to show the large field and also accepting existing contacts. Edit the webform field for the existing contact so it is a dropdown select (just for easier testing).
Fill out the form once to create a contact, filling in that field.
Go back to the form and select the existing contact to be the one you created. The field does not auto-populate.
Alternate way to test this is to go to the form with the parameter ?cid=[id] added to the URL, which will show errors on the screen about the field not existing.
==== After investigation, we discovered that the root of the problem seemed to be that the field was not being created in the database table for the custom value. For example, if the custom field group was called constituent and it was the 3rd custom group, the table I believe would be civicrm_value_constituent_3. Each custom field of that field group normally gets a column in this table, but if the large text size is too big, it doesn't create the column and it doesn't give any warnings either. Manually creating the columns into the table fixed the problem, reinforcing that conclusion.
It does still add to the civicrm_custom_field table, so no problem there. It's just the values table.