Я думаю, вы не сохраните результат должным образом:
doubleQuote[qi::_val = L'"']
Здесь, из-за знака «=», вы переопределяете то, что уже было. Попробуйте вместо него «+ =».
doubleQuote[qi::_val += L'"']
Кроме того, я не знаю, является ли сохранение автоматическим, возможно, вам придется добавить тот же '+ =' после другого парсера в альтернативе:
(wide::char_ - L'"')[qi::_val += boost::spirit::arg_names::_1]
Но я не так хорош с Ци, так что, возможно, он автоматизирован, что имело бы смысл.