How are the access-points configured and learn about both controllers? For an predictive fail-over and fall-back you should configure the primary and secondary controller for all access-points on a individual level (High Availability tab). To make sure that the access-points go back to their primary WLC once joined on the secondary WLC, the option "AP Fallback" should be enabled on the secondary WLC. This options can be found under the global "Controller" tab of the WLC.
If the configuration described above is in place, please provide us with the console output of one of the access-points not joining the primary controller.
Please rate useful posts... :-)