I had exactly the same problem. You can partly circumvent it by using math versions, i.e.
\setmathfont\setmathfont[version=default]{version=default,TeX Gyre Pagella Math} %
\setmathfont[version=sansserif, Numbers=Lining, Scale=MatchUppercase]{Candara}
and then use
\mathversion{sansserif}
to switch back and forth.
Math versions are however not compatible with the range= argument, which probably renders this approach useless. For myself I actually quickly put together a version of Tex Gyre Pagella Math which has all serif latin letters and numbers replaced by sans serif versions from Tex Gyre Heros. Not everything works, e.g. \sqrt has a problem, but for simple math it seems to be fine. You can download it here: http://n.ethz.ch/~thomasu/download/TeXGyrePagellaMathSans-Normal.otf