Getting a transfer is convenient and door to door but I love a train journey, and the 2 hour trip from Hanoi to Haiphong cost me a mere US$3, you have to add in the extra trips to get to the railway station from your hotel plus in Haiphong getting to the port but if you are happy to take a bike its only US$2 per trip, so in total US$7 from my hotel in Hanoi to the port in Haiphong.
Then you have a choice of ways to get across to Cat Ba from Haiphong
From the port there are boats crossing every 2 hours during daylight hours, and there is two routes.
1/ Fast Hydrofoil direct from Haiphong to Cat Ba town VD 220 000 and takes 40 minutes
2/ Slowboat / Bus transfer from Haiphong to north Cat Ba island where an awaiting bus takes you across the island to Cat Ba town. VD130 000 (boat and bus) but takes 90 minutes.
Now to find a place to stay.
Most accommodation and the best place to stay is in Cat Ba town, there is a whole row of waterfront properties with ocean views lining the harbour front and behind it in the town are more places to stay, it gets cheaper the further away you are from the water, but if you go in off season you can really get a bargain, dorm beds waterfront US$3 per night rooms from US$6 per night.