Попробуйте установить флаг, который вы можете запрашивать в обработчике событий, чтобы предотвратить бесконечный цикл:
var changingDate = false;
$('.selector').datepicker({
onChangeMonthYear: function(year, month, inst) {
if (changingDate) {
return;
}
changingDate = true;
// your setDate() call here
changingDate = false;
}
});