Смена версии питона на убунту все сломала, как исправить?
Не надо так делать - попадёшь в dependencies hell

Используй pyenv (не забудь установить библиотеки).

Что бы установить pyenv curl https://pyenv.run | bash
Установить Python pyenv install 3.9.7
Сделать его дефолтным интерпретатором pyenv global 3.9.7 только так тоже делать не надо, а надо создать virualenv и работать в нём.

И есть беспройгрышный вариант - запускать в Docker.
Вопрос в том, с чего вы взяли, что те приложения что сломались совместимы с версией 3.9? Я не знаю как обстоят дела в питоне с обратной совместимость, но библиотеки на которых были завязаны определенные функции в приложениях могут не иметь обратной совместимость между 3.9 и 3.8, отсюда все и сломалось. "Правильного" перехода может просто не существовать.