The problem is that, for Emacs, keys call commands. Even simple
events like entering characters are calling commands: every time
you go to enter "o", for example, you are, in fact, calling
self-insert-command (try hitting
C-h k o to read about it).
For your case, the problem is that Emacs will ignore
M-u (because you told it to) and see only the "o" keypress --
not the "ö" you think you're sending.
Instead, we can bind the sequence
M-u o to insert "ö".
Usually, you can pass a string in place of a command to have it
(global-set-key (kbd "M-u o") "kittens")
It seems like we should be able to do this:
(global-set-key (kbd "M-u o") "ö")
But I get an odd error on my machine when I do it, so we're going
with a more circuitous route:
(global-set-key (kbd "M-u o")
(global-set-key (kbd "M-u O")
Doing that for all of the characters is bound to get tedious, of course. Instead, you might consider using input methods, especially the TeX input method. See, for example, Olé! Diacritics in Emacs (from Mickey Petersen's Mastering Emacs).