Nothing is wrong with your simulator. It has to do with the target of the configuration and where the get() is being called.
The second argument of the set() function allows you to control the scope of the configuration. When you specify “uvm_test_top”, only the component named “uvm_test_top” will get() that configuration item. When you specify "uvm_test_top.", the . now allows all components in the hierarchy below uvm_test_top to get that configuration item.
I’m guessing that you are calling the get() function inside your agent, which is why you aren’t being successful.
The recommendation is that you specifically target only “uvm_test_top” for virtual interface handles, and in turn, get() the values at the test level and store them in each agent’s configuration object. This allows you to have multiple interfaces of the same type, as well as removing the RTL testbench from having to know anything about the UVM testbench hierarchy.