SaveTotalCharge writes ionic+electronic, not valence+(pseudo)core.
SIESTA calculates pseudo-core charge but doesn't have an option to save it.I've made very small changes in SIESTA to save core charge instead of ionic (I don't have any idea what for ionic charge could be used) by setting SaveIonicCharge to true. I needed it for Bader analysis. I'll post the details about it very soon in my blog http://voznyy.elinity.com/blog/