Alternative Program for Orbital Population Analysis
ORCA can perform population analysis for each individual molecular orbital. This is an excerpt from the output file:

-----------------------------------
MULLIKEN ORBITAL POPULATIONS PER MO
-----------------------------------
THRESHOLD FOR PRINTING IS 0.1%
SPIN UP
                      0         1         2         3         4         5
                 -177.49372 -100.54186 -100.54186 -100.54184 -100.54179 -100.54174
                   1.00000   1.00000   1.00000   1.00000   1.00000   1.00000
                  --------  --------  --------  --------  --------  --------
  0Ti  1s             99.6       0.0       0.0       0.0       0.0       0.0
  0Ti  2s              0.4      -0.0      -0.0      -0.0      -0.0      -0.0
  1Cl  1s             -0.0       4.5       3.8       0.0      48.9       0.4
  1Cl  2s              0.0       0.0       0.0       0.0       0.3       0.0
  2Cl  1s             -0.0       4.9       4.1       0.0      50.5       0.4
  2Cl  2s              0.0       0.0       0.0       0.0       0.3       0.0
  3Cl  1s             -0.0      69.2       3.8       0.0       0.0      23.3
  3Cl  2s              0.0       0.5       0.0       0.0       0.0       0.2
  4Cl  1s             -0.0       1.4      71.5       0.0       0.0      23.4
  4Cl  2s              0.0       0.0       0.5       0.0       0.0       0.2
  5Cl  1s             -0.0       8.9       7.5      50.7       0.0      26.2
  5Cl  2s              0.0       0.1       0.1       0.3       0.0       0.2
  6Cl  1s             -0.0      10.4       8.7      48.6       0.0      25.6
  6Cl  2s              0.0       0.1       0.1       0.3       0.0       0.2


The program supports all options that you listed, and this input file header should get you started:

! B3LYP def2-SVP ECP{def2-SVP} COSMO(water) LargePrint
*xyz charge multiplicity
coordinates go here
*


You can find more detailed information in the manual.