You should learn some category theory. It provides some elegant language for discussing the issues you're running into.
In fact there are groups that are isomorphic (wrt group isomorphisms) but have different properties, for example, when seen as permutation groups.
As I said above, if you want to talk about properties of permutation groups which are not captured as properties of groups, then you don't want to talk about isomorphism of groups but isomorphism of permutation groups. More precisely, we can define the category $\text{GrpAct}$ of group actions and talk about isomorphism in this category. This is the category whose objects are triples $(G, X, \rho)$ where $G$ is a group, $X$ is a set, and $\rho : G \to \text{Aut}(X)$ an action of $G$ on $X$; and whose morphisms $(G_1, X_1, \rho_1) \to (G_2, X_2, \rho_2)$ are pairs $(\phi, f)$ where $\phi : G_1 \to G_2$ is a homomorphism and $f : X_1 \to X_2$ is a set map satisfying
$$\rho_1(g)(x) = \rho_2(\phi(g))(f(x))$$
for all $g \in G_1, x \in X_1$. Isomorphism in this category captures isomorphism of permutation groups (the special case where $\rho$ is injective), which is a stronger condition than isomorphism of abstract groups. More precisely, there is a forgetful functor
$$F : \text{GrpAct} \to \text{Grp}$$
sending a group action $(G, X, \rho)$ to the group $G$, and the basic phenomenon you are observing is that two objects $a, b \in \text{GrpAct}$ may not be isomorphic even if $F(a)$ and $F(b)$ are. This is not surprising and is in some sense typical.
Analogously (and surprisingly!), even if we say that G is a group and G∗ is a permutation group, we are talking about different mathematical object, even if they are isomorphic as groups!
From the perspective of category theory, the problem is that groups and permutation groups live in different categories. To compare them, you need to use the forgetful functor $F$, and then you need to distinguish between a permutation group (which lives in $\text{GrpAct}$) and the corresponding abstract group (which lives in $\text{Grp}$) as mathematical objects.
To use a computer science analogy (well, more than an analogy, but...), the forgetful functor typecasts between the types GroupAction
and Group
, and the isEqual
operator is defined differently for the two types (and does not compare a GroupAction
and a Group
; you need to typecast first).