Hi Ning,
I went through your modified slave TWI code and did not find fault in that . The salve TWI code that I had posted was checked for its working and hence it should work in your system as well .
Also the slave is ACknowledging the Address which means that it is ready to receive the data .
My suspicion is with the master code . The TWI clk is being stretched and one of the reasons may be the transmit FIFO may be empty . So you may have to check the TWI status registers at the Master uC end to see if there is anything to be taken care of .
Working with two emulators may not cause the problem . I have tested my code across 2 EZ_kits connected to different emulators to the same PC.
Regards,
Mahesh