How do I modify a core field to use Ajax and add markup?
After much testing and finding a missing character in one line even I was able to come up with some working code:

&lt;?php
use Drupal\Core\Ajax\AjaxResponse;
use Drupal\Core\Ajax\ReplaceCommand;

function fsed_entry_form_eform_submission_fsed_entry_submit_form_alter(&amp;$form, \Drupal\Core\Form\FormStateInterface $form_state, $form_id) {
  $form['field_faculty_member']['widget']['#ajax'] = array(
    'event' =&gt; 'change',
    'callback' =&gt; 'fsed_entry_faculty_member_ajax_callback',
    'wrapper' =&gt; 'faculty-member-details-wrapper',
  );
  $form['field_faculty_member']['widget']['#prefix'] = '&lt;div id="faculty-member-details-wrapper"&gt;';
  $form['field_faculty_member']['widget']['#suffix'] = '&lt;/div&gt;';
}

function fsed_entry_faculty_member_ajax_callback($form, &amp;$form_state) {
  $nid = $form_state-&gt;getValue(array('field_faculty_member', 0, 'target_id'));
  if ($nid) {
    $view_builder = \Drupal::entityTypeManager()-&gt;getViewBuilder('node');
    $storage = \Drupal::entityTypeManager()-&gt;getStorage('node');
    $node = $storage-&gt;load($nid);
    $build = $view_builder-&gt;view($node, 'eform_preview');
    $output = render($build);
  }
  else {
    $output = '';
  }

  $form['field_faculty_member']['widget']['#suffix'] = $output . '&lt;/div&gt;';

  return $form['field_faculty_member']['widget'];
}