Field API field_schema for text field error
This is because your value suppose to be string, however you given array as per these errors:

Warning: preg_match_all() expects parameter 2 to be string, array given in _media_generate_tagMap()
Warning: htmlspecialchars() expects parameter 1 to be string, array given in check_plain()

Since you're sending array, the column count doesn't match in your SQL query.
This is what you're sending:
INSERT INTO {field_data_field_tab} (entity_type, entity_id, revision_id, bundle, delta, language, field_tab_tabtitle, field_tab_tabcontent)
VALUES (:db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7_value, :db_insert_placeholder_7_format);
Array ( [:db_insert_placeholder_0] =&gt; node [:db_insert_placeholder_1] =&gt; 17 [:db_insert_placeholder_2] =&gt; 17 [:db_insert_placeholder_3] =&gt; tabbed_page [:db_insert_placeholder_4] =&gt; 0 [:db_insert_placeholder_5] =&gt; und [:db_insert_placeholder_6] =&gt; ss [:db_insert_placeholder_7_value] =&gt; ss [:db_insert_placeholder_7_format] =&gt; full_html )

which can be broke down into:

Fields: entity_type, entity_id, revision_id, bundle, delta, language, field_tab_tabtitle, field_tab_tabcontent
Placeholders: :db_insert_placeholder_0, :db_insert_placeholder_1, :db_insert_placeholder_2, :db_insert_placeholder_3, :db_insert_placeholder_4, :db_insert_placeholder_5, :db_insert_placeholder_6, :db_insert_placeholder_7_value, :db_insert_placeholder_7_format

So you've 8 fields, but 9 placeholders.
Fix
To fix it, you've to check passed value of $item['tabcontent'] and make it a string. For example:
'#default_value' =&gt; !empty($item['tabcontent']['value']) ? $item['tabcontent']['value'] : '',


See also:

Errors when using a field of '#type' =&gt; 'text_format'