У вас при каждом запуске в generate_key новый ключ генерируется же? Получается вы при перезапуске теряете старый ключ и генерируете новый. Нужно сохранять ключ и при перезапуске загружать ранее созданный ключ с помощью которого были добавлены пароли
Типа такого (не проверял)
def generate_key():
try:
key = load_key()
except FileNotFoundError:
key = Fernet.generate_key()
write_key(key)
return key