Mi sa che ti stai un po' incartando
Faccio un po' fatica a capire il tuo programma da 2 pezzi di codice, immaginando che _holiday_check sia una funzione chiamata dall'evento di un bottone di un wizard a cui vengono passati due date (che di solito sono già nel formato corretto senza fare la doppia conversione) farei così:
def _holidays_check(self, cr, uid, ids, date_from, date_to):
leave_pool = self.pool.get('hr.public.holidays.line')
leave_ids = leave_pool.search(cr, uid, [('date','>=',date_from), ('date', '<=', date_to)])
return len(leave_ids)
sicuramente c'è un da lavorarsela un po' anche percè date > date_from interviene anche l'ora quindi metterei date_from e date_to come date e non datetime