Nein, es liegt nicht an Tk::Entry. Tk 804 kommt ganz gut mit "Perl-Characters" zurecht, DBD::mySQL wahrscheinlich eher nicht. Also du hast hier den Fall: die Eingabe (Tk::Entry) ist OK, und bei der Ausgabe brauchst du die rohen Daten ("Octets"). Dazu verwendet man Encode::encode:
$octets = Encode::encode("iso-8859-1", $string)
Die $octets kannst du dann an DBD::mySQL schicken. Beim Rueckweg muesstest du Encode::decode mit dem gleichen Encoding verwenden. Wenn du allerdings nur iso-8859-1 verwendest, kann man diesen Schritt wohl weglassen.
Die Loesung mit from_to ist falsch, weil man hiermit nur von Octets zu Octets wandelt.