You don't have to commit to a big up-front effort. You can take an incremental approach and add type annotations as you need them.
Also, I'm not sure how adding type annotations results in over-engineered solutions. Types are just little sanity checks you spread around your code to help the compiler and linters to catch inconsistencies. You shouldn't have to re-engineer everything.