I don't know of any way to delay the assertion of EOI relative to the last byte. I can tell you that the state of EOI and the DIO lines is not deterministic when DAV is not asserted. The way GPIB works is that the talker starts driving DIO and EOI, waits a while to let them settle, and then asserts DAV to indicate that they are stable. Depending on the GPIB chip being used EOI may assert before the last data byte is driven on to EOI. This is because the chip "knows" it is going to drive the last byte of a transfer, but not yet know what that byte is. In that case it will assert EOI while the previous byte is still on the bus. This is valid to do because DAV is not asserted, meaning DIO and EOI should not be sampled.
Where are you getting the data to calculate the checksum? Are you probing the DIO/EOI lines directly or reading them from a FIFO/register? Probing directly might not be good as GPIB uses special transceivers. If you must probe the bus directly you could use discrete GPIB transceivers. TTL level transceivers would probably work. Also, if you are probing the GPIB signals directly you should only sample them when DAV is asserted.