This is actually wierd. Just to make sure that it’s not reaching the service turn on the debug flag for any of the flags for the istio proxy
To see options available
./istoctl proxy-config log <podname>.<namespace>
Then set any of the flags to debug for example http
./istoctl proxy-config log <podname>.<namespace> --level "http:debug"
Now hit your service with a single request and check the logs to see if the headers are coming through.
Virtual services will not strip headers unless specified explicitly in the headers config.
I think it is norm to put everything in smallcase for headers. Also custom headers need not be prepended by x- as per the recommendation of the rfc
Hope that helps