Hi Ochando,
I don't understand what is happening either but I can think of two things that might be affecting the result.
Firstly, IORD() reads as 32-bits whereas memcpy() reads as 8-bits. How does your slave respond to these different requests? Also, I think, the IORD() version will do 188 reads but the memcpy() version will do 752.
Secondly, it looks like there is some kind of data cache going on, the first set of 188 integers are read ok then all followong sets are the same. Bear in mind that IORD() ALWAYS reads i.e. the data at the address is considered to be volatile. memcpy() doesn't know about volatility.
Sorry I don't have an answer.
Banx.