Нет, ваш код смотрит только на элемент arr[0][0] после чего всегда делает return, независимо от того какое там было попалось число
По поводу что делать есть два варианта -
1) убрать return за пределы тел циклов и подумать зачем вы его вообще туда поставили. Дальше у вас будет проблема, что вы найдете все подмассивы которые
содержат несовпадающие элементы, в то время когда вы хотите найти
не содержащие совпадающие
2) если это практическая задача, а не академическая, то использовать стандартные возможности массивов и вместо всего этого написать в теле функции только
return arr.filter(innerArray => !innerArray.includes(elem))