Arduino Uno as multiple I2C slaves

So I'm using my Arduino as a slave device that sends data to an I2C master on request. Now this master also has 6 ports requesting data so I'd like to handle all this on the same board. Right now I've got a working program using the Wire library that works fine for a single port. Now I want to be able to use the same Arduino to act as up to 6 devices that could respond appropriately to requests for data.

From what I can tell the only hurdle is the multiple addresses that are necessary. The closest information I could find on this was this post which is asking the same thing but never seemed to be resolved.

The top answer seems to give a good idea but I'm not sure if I'd be wasting my time. Is there any other obvious way around this issue aside from using 6 different boards?

The top answer explains how this can be achieved. But this means you either have to patch the Wire library or to write a new library (probably based on the Wire library) that supports to set the address mask and checks the address and stores it for later retrieval. What are those 6 ports? Do they all act identically or should they return different stuff depending on the address?

So this can be done but you should read and understand the section 2-wire Serial Interface in the datasheet of the ATmega328p before starting to implement this new library.