System.Net.IPAddress has the Serializable-Attribute
That's not relevant, [Serializable] only matters to binary serialization. Settings are serialized with XML serialization. Which is the core problem, that only works when the type has a default constructor. So the deserializer can create a new object and set the public fields and properties. IPAddress doesn't have one.
Consider using a simple string instead. Use IPAddress.Parse() and ToString() in your code to convert.