Bazinga, все-таки я заставил вас создать тему =)
Итак, я код не проверял, но вангую что причина в следующем:
Для переименования вы используете метод 
FamilyManager.RenameCurrentType(string typeName). Но если вы внимательно прочитаете описание (
Rename the current family type.) и обратите внимание на то, что метод принимает всего один параметр, то заметите, что чего-то не хватает - метод переименовывает текущий типоразмер и принимает один параметр "новое имя". Ну а текущий типоразмер - это что?
Поэтому, нужно сделать так:
- foreach (FamilyType type in fmg.Types) 
- { 
-     if (type.Name == typeold) 
-     { 
-         fmg.CurrentType = type; 
-         fmg.RenameCurrentType(typenew); 
-         break; 
-     } 
- } 
Т.е. задать текущий типоразмер для FamilyManager