With respect to registrars, I think you would have to let a domain expire. Then re-buy the domain under the new registrar you have it under. - But I'm not sure, if their is a waiting period before you can buy a domain after it has expired. - but as far as I know you can't transfer a domain from one registrar to another until it as expired for the first registrar.
What I don't know is when Marcus sells one of his domains to say a student, does that domain have to remain with the present registrar buy under the new owner name. I guess that is a question that marcus needs to answer.
With respect to Hosting companies, you can always remove/delete a domain from one hosting company and add that same domain to a new hosting company. You then tell your registrar company where you want search query sent to via the DNS setup. Example. I have all my domains registered with NameSecure and I have all query searches redirected to Hostgator where my website domain sites registered. I do this by telling NameSecure the DNS I want to use. - In my case I'm using the DNS for hostgator.
So if I want to use Bluehost, all I do is change the DNS for hostgator to the DNS for bluehost. But note, even though you removed the domain in the first hosting company, you will still have to continue paying for that domain until the contract is up. For me I pay every six months for my domains.
As for tacking everything else, I use OneNote (I'm using windows 10) and use it keep things organized. If I'm tracking Stats (which I encourage you to do) then I use Excel spreadsheet app. - I track everything.