При написании имени существительного "загран(?)паспорт" мы сразу же обращаем внимание на то, что оно состоит не из одной части, а из двух. Вторая и конечная часть ("паспорт") более узнаваема, поскольку осталась в том виде, который мы привыкли в разных стилях использовать и в отдельности, и в некоторых других сочетаниях.
Первая же (начальная) часть существительного "загран(?)паспорт" является усечением имени прилагательного "заграничный". Половины этого слова уже нет, она отсечена. Подобные образования не пишутся никогда в два слова. Верное написание - слитное.
Вариант "загранпаспорт" (слитно) - единственно правильный, потому что любая другая логика приведёт нас к тому, что мы получим несуществующее слово "загран", которого на самом деле в языке нет и которое абсудно было бы считать самостоятельным.
Все грамматические формы существительного "загранпаспорт" пишутся аналогично, то есть также в одно слово. Например: "загранпаспортом", "загранпаспортов", "о загранпаспортах".
Примеры предложений:
"Загранпаспорт Ивану Афанасьевичу был вчера уже выдан".
"Молодой человек забыл в поликлинике куртку с загранпаспортом в кармане".