On one of my systems, bash programmable completion works for basic commands like this:
$ ls -l t/
$ ./test_all.pl --environment=test --verbosity=1 --test=t/
[will not autocomplete; does not show contents of directory]
Since your non-working system has autocompletion entries your working systems don't, as you saw in the
complete -p output, run
complete -r on the non-working system to clear out the completion entries (source).
Edit Completions may be loaded in any of the startup files:
~/.profile. They are tested in that order (bash(1), section "Invocation"). I suspect your
/etc/profile is loading the completions, which is why you need
complete -r in your
.bash_profile to clear them out.