Rebuild Form Element with new property after Ajax
Finally I achieve it with following, Change autocomplete parameters prperty in form alter on rebuild event INSTEAD of changing property worked for me, 
        

    use Drupal\Core\Form\FormStateInterface;
    use Symfony\Component\HttpFoundation\Request;

    function zeytondev_form_alter(&amp;$form, FormStateInterface $form_state, $form_id) {

        if ($form_id == 'node_trends_form' || $form_id == 'node_trends_edit_form') {
            $form['langcode']['widget'][0]['value']['#ajax'] = array(
                'callback' =&gt; 'zeytondev_language_change',
                'wrapper' =&gt;'mtrend-wrapper',
                'event' =&gt; 'change',

            );

            //kint( $form['field_trends']);
            $form['field_trends']['#prefix'] = '&lt;div id="mtrend-wrapper"&gt;';
            $form['field_trends']['#suffix'] = '&lt;/div&gt;';
            $langcode = $form_state-&gt;getValue('langcode');
            if($langcode) {
                $langcode = $form_state-&gt;getValue('langcode');
                $langcode = $langcode[0]['value'];
            }
            else {
                $langcode = 'en';
            }
            //var_dump($langcode);
            $form['field_trends']['widget'][0]['value']['#autocomplete_route_parameters'] = array('lang'=&gt;$langcode);
        }

    }


    function zeytondev_language_change(array &amp;$form, FormStateInterface $form_state) {
        $form_state-&gt;setRebuild(TRUE);
        return ($form['field_trends']);
    }