In reply to mlsxdx:
You have discovered how poorly specified modports are and implemented. I suggest only using them for synthesis which requires the directional information.
To address your issues, a modport is not a scope, it is an access group. You cannot use it in a hierarchical reference. Get rid of the modport name anywhere you have intf.mp.signal. It should be intf.signal.
Another way to put it, it doesn’t make any sense to use a modport in your module tb. It already has access to all the signals inside the busA instance. A modport could not restrict any access.