Before tmux 2.4, copy mode keys were bound with 'bind-key -t vi-copy v begin-selection'. tmux 2.4, released in April 2017, removed the vi-copy and emacs-copy tables and moved copy-mode commands behind send-keys -X. The equivalent is now 'bind-key -T copy-mode-vi v send-keys -X begin-selection'.
A config carried over from an older tutorial fails at load with 'unknown command: bind-key' or 'usage: bind-key ...' printed on the first attach, and because tmux stops reading the file at the failing line, everything after it is silently skipped. That is why a single stale binding can appear to break an entire config.
Check the whole file with 'tmux -f ~/.tmux.conf new-session -d' and read the errors, or 'tmux source-file ~/.tmux.conf' from inside a running server, which prints the first error. Confirm what is actually bound with 'tmux list-keys -T copy-mode-vi'. The mode itself is selected by mode-keys, and setting 'set -g mode-keys vi' does not change which table your bindings must target.