Lo del locale parece estar bien, el time esta en es_ES.UTF-8.
He creado una sencilla aplicacion con un campo de text y un datechooser y cuando selecciono el datachooser el dia que me pne en el campo de texto es uno menos.
Es raro raro.
El codigo es bien sencillo
Public Sub DateChooser1_Change()
TextBox1.Text = DateChooser1.Value
End
Clicko en el dia 4 de septiembre del datechooser y me pone en el campo de texto el dia 3