about Yangshuo to Hangzhou...
Like others have mentioned, you can take the bus from Yangshuo to Guilin and take a train from Guilin to Hangzhou.
I've taken the train from Guilin to Shanghai (its kind of close to Hangzhou) in 2007. It took close to 24 hours. The train ride was pretty boring because I didn't have a anything to read or do. I remember the staff came around once offering hot meals. I think they also come by periodically selling packaged cookies and other snacks. You can also step off the train and buy food from people at the platform when the train stops in a station.
I also took the overnight train from Guangzhou to Guilin. It was comfortable enough. I pretty much slept the whole time.