The operate call which has a mixed read & write (touch in your case) will be treated as a write. So, I am guessing that whatever is being shown in AMC is accurate. The read counter will be incremented only for pure-reads. You can cross check this by isolating your reads & writes.
However, the writes failing can be a different issue. Check your return code of the write call. It should give you more info. Giving the full output of stats (asinfo -v stats) may give more details.