"próbáltam a HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\<GUID> alatt beállítani, ami kézzel sikerült is"
Programból nem fog, elevated access hiányában.
"Hogyan tudom elérni, hogy a netsh parancsot meg tudjam hívni a programból, elevated accessel?"
Röviden: sehogy.
"Mi a baja a winapi-s függvénynek?"
Az elevated access hiánya.
"Hogyan tudom lekérni egy interface GUID-jét (a név ismert) és utána újrahúzatni a hálózatot, miután a registryben átírtam amit kell?"
Mivel nem tudod átírni, a kérdésre lényegtelen a válasz. :)
Ha a Winnel azt csinálsz, amit akarsz, akkor írd meg külön service-ként, induljon a Windowszal system jogon, hallgasson valahol, ahova átadod az IP-t, és csinálja meg a service a váltást.