Custom wp_query differs on index page and category page

I can only assume that there is filter running on the category page that is overwriting your post type.

  1. Try adding 'suppress_filters'=>true to your query arguments, but that only works for some filters not all. I suspect it will not work in this case.
  2. Or find the filter that is altering the query and modify it so that
    it does not overwrite existing post_type arguments, which is what
    I assume the filter does.

I expect that option #2 is going to be the solution.