Как работает array_uintersect?
term_id и term->id это не одно и тоже. В первом варианте который не работал у вас term->id во втором «рабочем» term_id
Обычная опечатка
Что-то не понял: вы пишите про массивы, но в «сравниваю их» объекты. Что вы в итоге хотите сравнить?