I understand now.
The issue is that the master ACKs the byte and when the slave sees that it thinks that it must put another byte on the line so when it sees the next CLK edge it starts putting out the next byte.
So what the master needs to do on a read from slave is to NACK the last byte because everytime the slave sees an ACK it interprets that as send another byte to the master. This is how the ADuC7023 slave works and I'm pretty sure that it's part of the I2C standard.
I am aware that there are masters that perform in a non-standard way and ACK the last byte, but the ADuC7023 doesn't support this non-standard behaviour.
As you're bit banging it, it should be easy for you to make the master NACK the end byte.
Hope that solves your issue.
Regards,
Alex