I had a problem w/the same symptoms (bus2reg being called twice) and the read data not being set. After removing the predictor all together, I still wasn't getting the read data. I actually thought you needed the predictor, but you don't.
Then I tracked it down to the fact that with RAL your DRIVER needs to latch the return read data, whereas a monitor was doing that for me before. I was learning how to use UVM, so I started w/a monitor first, then moved to try RAL. So instead of checking via the monitor, I'd be checking via the RAL. BUT I didn't update my driver to return the read value. Eve