This is probably a better question for the protobuf team than the gRPC team.
What you described seems like it would work, if my understanding of go.mod is correct. The concern with using generated (pb.go) files from anywhere but a common source location is that the proto library will panic if multiple definitions of the same message are found. However, I believe using the replace directive will affect all libraries you are depending upon to reference your vendored copy, and it should be okay. The stubs generated for gRPC do not have this potential problem, as there is no global registry of service definitions.
Let us know if you run into any problems with your approach.
Thanks,
Doug