Modbus Serial card, Diagnostic Data

I have a couple Anybus gateways and the output data maps to holding registers that have gaps based on the gaps between registers on the modbus device i'm reading.  So, what happens is i have this mapped data with gaps of hundreds of registers (the vendor uses a default mapping and wouldn't change). I now have 30 or so different registers across the mapping and need a dataset for each. Since I can only have 100 registers per dataset.. and the gaps in the mapping between the registers is greater. I can only have 16 datasets......

The anybus gateway does seem to have a INPUT DATA region where the registers are mapped in order and with no gaps, but the registers start at 0. DeltaV forces the starting register based on function. So, the only way I can read registers that low is by selecting Diagnostic Data.  I'm going to assume that the function code associated with this selection is #8 with the associated subfunctions, none of which are capable of reading the register value.