The builtin completion shell scripts just use invoke --complete -- <invocation>, which doesn't work when one is using the -c/--collection argument to load a nondefault collection module. Ideally, it should attempt to notice this and copy it.
invoke --complete -- <invocation>
Got this working for zsh, leaving bash/fish open for later/user submission.
Also exposed another bug where having core flags in completion input, causes flag completion to find core context instead of task context. Making that a new bug: #239