If you have still X years remaining of a registered domain, do those years move as well or do you lose them, if you move registrar?
Yes. You usually get +1 year to existing expiration date of your domain, at least this is how it works for .com, .us and few other tlds I have.
Moved my domain from namecheap to cloudflare that I use for Fastmail. There was a bit of a song and dance because CF requires you use its own name servers, but I had codex do it for me in chrome. Would recommend.