Look at your definitions: Item is an array of
SiteExternalIdItem
objects, but your code is trying to fill it with
ExternalTypeCd
objects.
You need something like this:
SiteExternalId = new SiteExternalId
{
Item = new SiteExternalIdItem[]
{
new SiteExternalIdItem
{
ExternalTypeCd = new ExternalTypeCd {ExternalIdTypeName = "A", SiteCode = "X"},
SiteNumber = "666"
}
}
}