Hi Dory,
I can see your point since "chose" being feminine the logical deduction would be that "grand" should be "grande".
However, the expression "pas grand-chose " is always like that. Apparently in olden French it would have been spelt "grand'chose" which normally indicates there's a letter missing but in modern French we just accept the expression is "grand-chose" and don't bat an eyelid!
Hope this helps!