Dynamically Change QuickForm on EntityRef selection
This can be done by adding javascript directly to the TPL file associated with the QuickForm.

In the FORM php file The following are the elements that I add for selecting:

        $this-&gt;addEntityRef('field_dc_group', ts('Select DC for the Leader'), array(
        'entity' =&gt; 'group',
        'api' =&gt; array(
            'params' =&gt; array(
                //'tag' =&gt; GetCiviSetting('org.namelessnetwork.smallgrouptracking', 'small_group_leader_tag'), // filters results to just those with Small Group Leader Tag
                'parents' =&gt; array('IN' =&gt; array(34)), // this will get the DC we want to select
            )),
        'select' =&gt; array(minimumInputLength =&gt; 0),// auto populate results),
        'id' =&gt; 'field_dc_group'), 
            true // require 
    );

    $this-&gt;addEntityRef('field_sg_group', ts('Select Small Group Leader'),array(
        'entity' =&gt; 'group',
        'id' =&gt; 'field_sg_group', 
        'select' =&gt; array(minimumInputLength =&gt; 0),
        ),
            true
    );`


At the bottom of the FORM tpl file I added the following javascript code (inside {literal} tag):

&lt;script type="text/javascript"&gt;
    CRM.$(function ($) {


      console.log($("#field_dc_group").val);

      $("#field_dc_group").change(function() {
        $('#field_sg_leader').select2('data', {id: null, text: null}); // clear currently selected group
          console.log("DC Group ID: " + $("#field_dc_group").val());
        $('[name=field_sg_group]').crmEntityRef({
            entity: 'group',
            api: {params: {parents: $("#field_dc_group").val()}},
            create: true
        });

      });
      $( document ).ready(function() {
        $('#field_sg_group').hide();
      });
  });
&lt;/script&gt;


Using this setup I am able to update the select2 fields dynamically as well as get the value in the FORM postProcess.