Found the issue to gain focus!
It's in your coroutine ChangeSelection, I don't why, but it's the fact that you're doing "yield return new WaitForEndOfFrame();", by removing this, I have the focus and everything is working.
I just need to add a bit of custom code to launch the virtual keyboard on the Surface Pro, that is:
System.Diagnostics.Process keyboardProcess
= new System.Diagnostics.Process(); keyboardProcess
.StartInfo = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files\Common Files\Microsoft Shared\ink\TabTip.exe");keyboardProcess.Start();
And because I have the focus, everything is working fine, typing, selecting, deleting text etc...