The problem seems to be in the keyboard compiler. Ukelele is generating
valid XML, but the keyboard compiler cannot parse it, complaining about
an illegal character, though I haven't been able to determine what that
is (the line number and character offset point to different places in
the file).
The solution is to save the keyboard layout using the numerical
representation of code points outside the ASCII range. I would tell you
to do so by changing a preference, but it appears that I have a bug in
the current version of Ukelele which prevents that from working. I will
hopefully be able to get out a new version soon that fixes it.
In the meantime, with Ukelele not running, run the following command in
a Terminal window:
defaults write org.sil.ukelele CodeNonAscii 1
Now open Ukelele, make a change and then change it back, forcing Ukelele
to save the file, which should then be saved in a format that the
keyboard compiler will accept, and you should be able to use your
keyboard layouts again.
John