The only solution for you, that I can think of is by skip - count method and correct _CRS method in SSDT. SBFX does not make any sense. Your SSDT end result should simply look like this since your GPI0 is native.
Scope (_SB.PCI0.I2C0.TPD0)
{
Method (_CRS, 0, NotSerialized) // _CRS: Current Resource Settings
{
Return (ConcatenateResTemplate (SBFB, SBFG))
}
}
Added in 19 minutes 13 seconds:
1. Wireless keyboard is seen loaded under USB peripheral. Is this the surface pro's keyboard?
2. Camera looks like it is an I2C device. What does it show in Windows device manager? Not sure if voodooI2C project supports it. Need to check at their official github/gitter page.
3. What is your touchscreen's ACPI ID?
4. Your sound codec is ALC298. Read the link below if you had not done so. You just need to test with the available layout id one by one and reboot with each changes. https://Olarila.com/forum/viewtopic.php?f=28&t=9788