Migrating MySQL to new server
8 months later, but here's the answer:

No problem in having a MySQL 5.5 slave to a 5.1 master. There is a problem with having it the other way around -- I've seen it fail.

Your approach is very viable and is being done frequently. You have both B and C replication from A. Then, at some stage you:


freeze A (via FLUSH TABLES WITH READ LOCK)
Verify both slaves are caught up with A's last statement.
Take A down
Change C to replicate from B, using B's SHOW MASTER STATUS
Tell your application B is the new master
Celebrate with beer


This does require a minimal downtime of a few seconds (and up to a minute) -- it mostly depends on your skills and confidence.