my $DirSelected = $mw->chooseDirectory(-initialdir => "~",
Since you said you are using a Windows machine the first thing I would try is to replace "~" with a test folder such as "c:/temp". If that works then try $ENV{HOME}.
Update: The documentation for Tk::chooseDirectory mentions encoding issues with this method:
Perl does not have a concept of encoded filesystems yet. This means that operations on filenames like opendir and open still use byte semantics. Tk however uses character semantics internally, which means that you can get filenames with the UTF-8 flag set in functions like chooseDirectory, getOpenFile and similar. It's the user's responsibility to determine the encoding of the underlying filesystem and convert the result into bytes, e.g.
use Encode;
...
my $dir = $mw->chooseDirectory;
$dir = encode("windows-1252", $dir);
opendir DIR, $dir or die $!;
...