Wenn, dann gehört das so:
CheckBox1.Caption := Edit1.Text;
Ich weiß nicht, was passiert, wenn man ein TEdit in einen String castet. Da kommt vermutlich Murks raus.
Edit: und wie erwähnt, lasse den Typecast weg. Der ist einfach unsinnig. Und die Variable kannst du dir auch sparen, da du sie nicht verwendest.
Grüße, Matze