The default implementation for isomorphism checking between morphisms scales terribly, since for every isomorphism between codomains it has to find isomorphism on the domains. In the case of graph morphisms, it could probably be improved.
The implementation could be a backtracking algorithm that takes each mapping $(a, b)$ in one of the morphisms and assigns it to some mapping $(x, y)$ in the other morphism, which forces the assignment $(a <-> x)$ in the domain isomorphism, and $(b <-> y)$ in the codomain isomorphism.
The default implementation for isomorphism checking between morphisms scales terribly, since for every isomorphism between codomains it has to find isomorphism on the domains. In the case of graph morphisms, it could probably be improved.
The implementation could be a backtracking algorithm that takes each mapping $(a, b)$ in one of the morphisms and assigns it to some mapping $(x, y)$ in the other morphism, which forces the assignment $(a <-> x)$ in the domain isomorphism, and $(b <-> y)$ in the codomain isomorphism.