Yes, your existing domain can be switched to point to your VPS.
Email on a VPS can be a little tricky if you don't know what you're doing. I recommend either using a panel on your vps, or keeping your free hosting account at the same time. If you keep your free hosting account you can use cpanel to check and manage your emails. If you install a panel on your VPS it will make email much simpler for you. A popular free panel is Vestacp. You could also install cpanel on your VPS, but it costs $15 per month so most people go with a free panel.
Yeah, the VPS starts as a blank OS, so you can install apache and mysql and whatever you need. Installing a panel like Vestacp makes this easier for beginners because you can use a browser to manage your sites. Personally I prefer to just use ssh to do everything. Panels are nice, but they take a lot of memory and you'll have better performance without them installed. Vestacp also has some odd quirks like magically installing nginx even though you picked apache and then neither works until you uninstall one or the other. We recommend using apache because it's the same that Johnny, Ricky, and Tommy use, and that way you don't have to change any of your files to migrate your website. Nginx is nice, but you'd likely have to rewrite some stuff to make it work on your existing site.