You could create the initial patch with requires_grad=True and copy it into the bigger tensors using your desired indices (or apply F.interpolate etc. on it):
patch = torch.randn(1, 1, 60, 60, requires_grad=True)

x = torch.zeros(1, 1, 500, 500)
x[:, :, :60, :60] = patch
y = torch.zeros(1, 1, 608, 608)
y[:, :, :500, :500] = x

conv = nn.Conv2d(1, 1, 3, 1, 1)
out = conv(y)
out.mean().backward()

print(patch.grad)