tmux's default-command is empty, which means each new pane runs the user's shell as a login shell. On macOS a login shell sources /etc/zprofile, which runs path_helper, and path_helper rebuilds PATH by moving the entries from /etc/paths and /etc/paths.d to the front. Anything you prepended in .zshenv or .zprofile ends up behind /usr/bin, so the system python or the system git wins inside tmux while the correct one wins in a plain terminal window.
Confirm by comparing 'which -a git' inside and outside tmux, or by printing PATH in both.
Two fixes. Set 'set -g default-command "${SHELL}"' in tmux.conf so panes run a non-login interactive shell, matching what most terminal emulators do on Linux. Or make the PATH construction idempotent and order-safe in .zshrc, which runs for every interactive shell regardless of login status; in zsh, 'typeset -U path' plus prepending there gives a stable result. The same login-shell behaviour explains PATH differences between tmux and a terminal on Linux when /etc/profile.d scripts are involved.