Hi david.gates,
I send my code for adding node using C#. That code works. I realised you didn't set SysName, Location, Contact. If your real problem is not showing any values on node detail page, maybe you should to set this values to empty blank and you should control, the engine, has '1' number for id, really exist.
You can take a look these topics.
string uri = swis.Create("Orion.Nodes", new PropertyBag
{
{"EntityType", "Orion.Nodes"},
{"IPAddress", pb.IPAddress},
{"Caption", pb.Caption},
{"SysName", pb.SysName},
{"DynamicIP", pb.DynamicIP},
{"EngineID", pb.EngineID},
{"Status", pb.Status},
{"Allow64BitCounters", pb.Allow64BitCounters},
{"ObjectSubType", pb.ObjectSubType},
{"SysObjectID", pb.SysObjectID},
{"MachineType", pb.MachineType},
{"VendorIcon", pb.VendorIcon},
{"Community", pb.Community},
{"SNMPVersion", pb.SNMPVersion},
{"MemoryUsed", pb.MemoryUsed},
{"CPULoad", pb.CPULoad},
{"PercentMemoryUsed", pb.PercentMemoryUsed},
{"Contact", pb.Contact},
{"Location", pb.Location},
{"DNS", ""},
{"IOSImage", ""},
{"IOSVersion", ""}
});