Boa tarde Laura!
Uma particularidade desta reação é que ela é iônica, pois os reagentes são íons.
Assim, deve-se tomar cuidado com os cálculos dos Nox, pois o valor total da carga de cada substância agora não é mais zero, mas sim o valor indicado.
Como você já disse em sua pergunta sim, o valor do nox do H+ é 1, não 0, pois ele é um íon com esta carga.
Calculando inicialmente os nox de cada elemento, temos o seguinte:
IO3- + SO3- -> I2 + SO4(2-) + H+ + H2O
Iodo reduz de +5 para 0.
Oxigênio não muda (todos -2).
Hidrogênio não muda (todos +1).
Enxofre oxida de +4 para +6.
Assim a variação de cada um é
Iodo: -5
Enxofre: +2
Colocando as variações como coeficientes de forma invertida (5 para enxofre e 2 para o iodo) teremos:
2IO3- + 5SO3- -> I2 + 5SO4(2-) + H+ + H2O
Agora, um passo muito importante para terminar o balanceamento de uma reação iônica, é considerar a soma de cargas totais, sempre faremos isso quando formos balancear a água e seus íons H20, H+ e O(2-).
Considerando as cargas, fazemos uma equação, onde o coeficiente que multiplica o H+ será chamado de X, e os coeficientes que já descobrimos, multiplicarão as cargas das substâncias que os acompanham. Aqueles que não possuem carga, terão valor zero.
2*(-1) + 5*(-1) = 0 + + 5*(-2) + x*1 + 0
-2 - 5 = -10 + x
x = 3
Assim obtemos o coeficiente que multiplica o H+, completando o balanceamento:
2IO3- + 5SO3- -> I2 + 5SO4(2-) + 3H+ + H2O
Como pode observar, o total dos coeficientes dá 17, e sim o agente oxidante é o iodato pois ele que reduz, oxidando o sulfito.
Espero ter ajudado!
Grande abraço.