What happened?
A call to SetContractPackageHash() stores the package hash in the client so that an entry point can be called via package hash instead of contract hash. However, it not permits to read data from the contract. For that, SetContractHash() must be used.
What did you expect to happen?
SetContractPackageHash() may fetch the contract hash and use it to query the named keys.
Are you willing to submit a pull request to fix this bug?