The two VIP components you have are simply agents in UVM. Each agent has its own (virtual) interface connection to the DUT, as shown in the UVM Cookbook. Since the virtual interfaces are passed down from the top-level module (make sure you read the follow-on articles: here and here), there is no need to combine your two interfaces into a single interface. Simply pass each interface, the I2s and Wishbone, separately to your testbench through separate uvm_config_db::set() calls.
As to your second question, you should be careful. It's a good idea, in theory, to have both master and slave VIP components for a given protocol and, yes, you can connect them together to make sure that they work. However, if they are developed by the same person or team, it's quite possible that they could both have the same error so that they work "correctly" together but actually violate the spec. With pre-packaged VIP, such as Mentor VIP, you can be confident that the protocol is modeled correctly in the VIP, so you just have to worry about getting it right in your DUT.