Во-первых для отслеживания нажатия на cell используется другой метод,
tableView(_:didSelectRowAt:).
Во-вторых, как видно из Вашего кода, вы не совсем понимаете как обращаться с инстансами классов. То есть когда делается
CreateTodoTableViewCell().selectedProject = indexPath.row то происходит создание инстанса (обьекта) класса
CreateTodoTableViewCell и присваевается какое то значение его переменной
selectedProject. А что дальше? Дальше на выходе из функции этот класс удаляется из памяти, и вы где то в другом месте вашего кода вызываете метод другого объекта этого же класса, но у которого
selectedProject дифултный, -1. Вам надо в методе
didSelectRowAt получить ваш реальный cell, а не создавать его:
if let cell = tableView.cellForRow(at: indexPath) as? CreateTodoTableViewCell {
cell.selectedProject = indexPath.row
}