первое в регистрации при попытке ввести данные получает странную ошибку
Потому что с именами путаница. Например, в reg используются элементы entry
EPASS а на проверку передаются entryPASS.
авторизации проверка логина проходит успешно, а абсолютно эдентичная проверка пароля ставит систему в тупик
У вас там проверка вообще странная, ищете логин среди всех, затем пароль среди всех, а если совпадают так уходите в бесконечный цикл.
И вообще, у Вас логины отвязаны от паролей, совпадение покажет даже для несовпадающих пар логин:пароль, даже если они просто есть в данных. Для нормальной проверки нужно хранить их попарно, например в виде словаря logins = {"логин1": "пароль1", ...}
Правильнее было бы сделать проверку (используя ваши же переменные name, p) и вышеуказанный словарь
if logins.get(name) == p:
сразу проверит, что введенные логин и пароль совпадают.
И саму проверку пароля лучше не привязывать к элементам интерфейса. Сделать функцию, просто принимающую готовые строки (логин, пароль) и выдающую результат проверки. А в эти функции передавать уже строки из нужных элементов интерфейса: entryPASS.get() и т.п.