Is there a difference between 愿意 and 肯?
In general they're about the same. They are actually used to define each other in some dictionaries. Colloquial usages might differ, but in most cases you can safely use 肯 in place of 願意, especially when spoken.

There is a little difference though. While both words mean agreement/acceptance, with 肯 its acceptance regardless of whether you are happy/willing. In contrast 願意 indicates that its what you want, i.e. there is no unwillingness. So for instance, when exchanging marriage vows, we say 我願意 and not 我肯. The latter would carry an undertone of reluctance.