Dear Yun,
You can try to compute the charges using self-consistent hirshfeld partitioning (use SELF_CONSISTENT T inside the section &HIRSHFELD..&END) and using SHAPE_FUNCTION DENSITY. It has been highlighted before that there is in general a dependence of the charges on the basis set on MoS2 (see
https://groups.google.com/forum/#!topic/cp2k/gZgiyqZURs4)
For the DZVP-MOLOPT-SR basis, setting self consistent partitioning will give the right sign of the charges. We have also noticed that using this scheme there is not a significant dependence of the charges wrt to the size of the basis set. However, it is worth checking the dependence on the basis set size of the geometry and of other properties that may be relevant for your specific case.
For that, you may want to check the file BASIS_MOLOPT_UCL, which is an extended molopt basis set library.
Best
Gabriele