I don't understand why the GUI would even be difficult. There are a finite number of calls. All they have to do is be slavishly followed
There may be a finite number of them (vast but still finite), they're sitting in a sea of asynchronous execution while maintaining internal state. If MS don't just clone Android source, manually reproducing all the subtle interactions adds a huge level of complexity to the task.
Get that all working and you still have to replace the rendering layer or accept the graphics won't render identically, shim the hardware drivers and fake up an interface to hide lots of timing and formatting issues with the hardware.
Then remember, Microsoft has spent years telling people how much more efficiently Windows uses hardware than Android. That's suddenly not true.
It's not easy.