How to set the value of a field when hidden from certain users/roles?
Ok it seems I can get around this error by setting:

$form['field_target']['#access'] = FALSE;


instead of ['#type'] = 'hidden'; and Drupal no longer freaks out.

If anybody has a better idea though I'll glady accept a different answer :)