Usually, a "Read IOCTL failed" message means the device returned more data than the host requests. Try requesting a larger block of data (such as 8K) when continuously writing data into the Slave FIFOs.
An Easy Test Case:
Request 512 bytes of data from the EZ-USB Control Panel (there should be a pending IN request at this juncture) over EP2, then write 512 bytes into the EP2 FIFO. All 512 bytes of data written by the external master should be received. This test case assumes that you have setup EP2 to be in AUTOIN=1 mode, and that EP2AUTOINLENH/L is set to 512 for high-speed operation.