Verifing the given R/S pair (signature) against a hash using the public key
I suppose you use the BitCoinJ library.

You are not creating a signature the correct way; an ECDSASignature object should be initialized with the ECDSA signature parameters (r,s), not the actual private and public keys. The constructor you are using, implies that the ECDSA signature has been computed already, you somehow got r and s and you initiate the signature object.

To achieve your required functionality, use the doSign(Sha256Hash input, BigInteger privateKeyForSigning) method of your ECKey and the output will be your desired ECDSASignature object. 

The input on doSign should be the same with the input on verify, which is always the SHA256 of your message to be signed. If you want to spend an P2PKH output you must sign the public key, check this post for more information.