the IPs are, in fact, added, but AddIPAddress is non-persistent:
The IPv4 address added by the AddIPAddress function is not persistent. The IPv4 address exists only as long as the adapter object exists. Restarting the computer destroys the IPv4 address, as does manually resetting the network interface card (NIC). Also, certain PnP events may destroy the address.
To create an IPv4 address that persists, the EnableStatic method of the Win32_NetworkAdapterConfiguration Class in the Windows Management Instrumentation (WMI) controls may be used. The netsh commands can also be used to create a persistent IPv4 address.
Source: http://msdn.microsoft.com/en-us/library/windows/desktop/aa365801%28v=vs.85%29.aspx
You can execute the EnableStatic method using WMI.NET (System.Management Namespace) like:
var q = new ObjectQuery("select * from Win32_NetworkAdapterConfiguration where InterfaceIndex=25");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(q);
foreach (ManagementObject nic in searcher.Get())
{
ManagementBaseObject newIP = nic.GetMethodParameters("EnableStatic");
newIP["IPAddress"] = new string[]{"192.168.0.1"};
newIP["SubnetMask"] = new string[]{"255.255.255.0"};
nic.InvokeMethod("EnableStatic", newIP, null);
}