There are a bunch of people who have used KDL and YARP. I don't think it would be right to add a dependency on KDL into YARP, since we also have plenty of users who don't have it installed. The Bottle class is just one way of serializing data, there are lots of others. Why not just stream the frame as a bunch of numbers, e.g. a 4x4 matrix? You could use the yarp::sig::Matrix or yarp::sig::Vector classes, which can be streamed no problem. (A bunch of doubles thrown into a Bottle would also work). There's information on streaming/serialization in YARP here: http://eris.liralab.it/yarpdoc/port_expert.html

I can help you work out what you need here. You could also use this mailing list where YARP developers hang out: http://eris.liralab.it/wiki/Robotcub-hackers