This seems to be the behavioral when accessing the slaves with pointers instead of the IORD_DIRECT respectively IOWR_DIRECT function.
Have a look at the avalon interface specification. if a slave has less data bits than the master, the avalon switch fabric performs the full n bits access from the slave as the master has. therefore i highly recommend to use these IORD_DIRECT functions.
in your case IOWR_8DIRECT( address , offset , data ) and IORD_8DIRECT( address, data );
if that does not help, could you please setup signaltap to monitor the avalon interface to your ip (chipselect, address, read, write, waitrequest, data )