bir kaç sene önce buna benzer bir yazılım yapmıştım, hatalarını nasıl çözebileceğini söyleyeyim, bu sayede daha kaliteli hale getirebilirsin :

Yeniden başlatınca çözülmesi sorunu : http://www.dreamincode.net/forums/topic/109665-autostart-in-registry/ burdan çözüm bulamazsan "registry autostart vb.net" diye arat.

GörevY. için : vb.net block taskmanager yada vb.net disable taskmanager diye arat, bulursun.

Şifreyi programın içerisinde kaydettirip bir not defteriyle bilgisayarda bir yerlere kaydettirdin sanırım, büyük ihtimalle C:/'ye falan atmışsındır :) şans falan demenden anladım, onu önlemek için dosyanın adını systeminformations falan yap adam açmaya korkar, uzantısını da eğer txt dışında okutabiliyorsan inf. falan öyle kullan.

Program açık olduğu için kapatılamadı olayında ise :
Görev yöneticisinde application 2 falan yazmasını istemiyorsan onu app.setting den yapıyordun, tam olarak girilen yeri hatırlamıyorum şimdi kurulu değil ordan simgesine kadar değiştirebiliyorsun.

Sonra eğer form'un event lerinden form.close 'a
Application.Exit()
Close()

yazarsan program açık kaldıramıyoruz falan şeyini engellemiş olman lazım...

Ayrıca kodlarını şifrele, şifrelenmiş mi bakmadım ama şifrelemen yararına olur, acemi de olsan şifrele.