It's unclear from your question to which project you're deploying the function.
gcloud (somewhat confusingly) can use implicit configuration including the project and this can (!) catch people unaware.
What happens if you're explicit about the project you wish to use when you deploy?
gcloud functions deploy ... --project=${PROJECT}
And|or what happens if you enumerate functions with|without the --project flag?
gcloud functions list
gcloud functions list --project=${PROJECT}
Do the results differ?
You may check your current configuration using:
gcloud config list
I recommend that you unset the default project and always explicity reference it
gcloud config unset project
gcloud config get-value project
(unset)
gcloud $CMD --project=${PROJECT}