Drupal.attachBehaviors only working for some fields when using Ajax .load The following code works for some things that I do in terms of .load() such as adding Chosen to fields.
But it won't do anything to date fields, conditional fields or field groups. They get left with no JS.

I've added other similar forms on the page as a test so the scripts are available and I've also added the scripts to the theme's .info file.

Is there any way to fully .load() a form? It has to added using Ajax as it's a really slow form and kills website performance. 

EDIT: As Jimmy Ko pointed out, this isn't a good method. Instead, this link shows how to change the target of a form submit in an iFrame to the parent so I'll try loading the form that way with a custom tpl so only the form is shown in the iFrame.

   (function($) {
Drupal.behaviors.myBehavior = {
  attach: function (context, settings) {
    // Check so it doesn't repeat load
    if ($('#page-content-st-node-form').length == 0) {
    // Load 
     $('.page-bar').load('/node/add/page-content-st #page-content-st-node-form', {}, function() {
     Drupal.attachBehaviors($('#page-content-st-node-form'));
     });

    }

  }
};
}

)(jQuery);
$.load() will not update the Drupal.settings object, which contains the references to which fields need to be ajaxified. This is why you are seeing the issue you have. In order to load a form through AJAX, you need to return the form as well as the settings for the form alonng with the form, after the form has been rendered. This will update the Drupal.settings object, which then will ajaxify your form.

First you need to declare a callback path in hook_menu()

function hook_menu()
{
  $menu['my/ajax/callback'] = array
  (
    'title' =&gt; 'AJAX callback',
    'page callback' =&gt; 'my_ajax_callback',
    'access callback' =&gt; TRUE,
  );

  return $menu;
}


Then you need to generate your form, and ajax settings, in the callback path

function my_ajax_callback()
{
  $form = drupal_get_form('some_form');
  $rendered_form = render($form);
  $javascript = drupal_add_js(NULL, NULL);
  $settings = FALSE;
  if(isset($javascript['settings']))
  {
    $settings = '&lt;script type="text/javascript"&gt;jQuery.extend(Drupal.settings, ' .
      drupal_json_encode(call_user_func_array('array_merge_recursive', $javascript['settings']['data'])) .
    ');&lt;/script&gt;';
  }

  $response['form'] = $rendered_form . $settings;
  drupal_json_output($response);
}


Finally, you need to make an ajax call to get your form, and append it to the page somewhere, finally calling Drupal.attachBehaviors()

$.ajax(
{
  url:'/my/ajax/callback',
  success:function(data)
  {
    // Create a div and set the returned data as the contents,
    // so as to turn them into HTML
    var formElement = $("&lt;div/&gt;").html(data.form).contents();

    // Append the form somewhere on the page
    $("#some_container").append(formElement);

    // Finally call Drupal.attachBehaviors
    Drupal.attachBehaviors(formElement);
  }
});


For more of an understanding on what I'm doing with Drupal behaviors, read my tutorial on working with JavaScript in Drupal 7, in particular the section on attaching behaviors: http://www.jaypan.com/tutorial/high-performance-javascript-using-drupal-7s-javascript-api