Dear Yantao,
Thanks for clarifying the situation that you mean. I would definitely call that kind of MPS tensor "block sparse" and not "block diagonal" because in general the non-zero blocks do not have to be on the diagonal, nor are the blocks themselves diagonal. Sorry to be so picky about it, but we have a separate block-diagonal storage type in ITensor which we use to store things like the singular values coming from an block-sparse SVD, so it's helpful to distinguish that case.
Also, in general it may not be that Q(a)+Q(s) = Q(b), but it could be. The more general relation is something like Q(a)+Q(s) - Q(b) = F where F is the "flux" of that MPS tensor which can be non-zero (though also note that the signs of this equation depend on which way the arrows of the tensor point).
Yes, the DMRG code in ITensor preserves the block-sparsity of all tensors input into it, in a symmetry-preserving MPS. That's correct. Not only DMRG, but actually all operations on block-sparse, QN-conserving ITensors (such as taking an SVD, etc.) preserve the block-sparsity.
Regarding properties of eigenstates of symmetric Hamiltonians, any eigenstate with a unique energy (non-degenerate) will have a well-defined quantum number (i.e. be in a well-defined symmetry sector / or transform under a particular representation of the symmetry group). The exception is when eigenstates are degenerate, and then only certain linear combinations of them will have a well-defined symmetry. But that's ok, because you can just find these linear combinations, so there's still no danger of missing an eigenstate as long as you look in every symmetry sector.
Miles