The Magma command $\mathtt{Subgroups}$Subgroups
returns representatives of the conjugacy classes of subgroups of the group, and since the algorithm involves some random choices in various places, it does not return the same representatives with each call. That explains why you are getting different numbers of nicesubs each time.
There is a command $\mathtt{AllSubgroups}$AllSubgroups
, which (as you might expect) returns all subgroups, just as subgroups, not as records. There are $350$ conjugacy classes of subgroups, and $203639$ subgroups in total. When I ran your code with all subgroups, I found 604$604$ nice subgroups.
The reason for the error in defining some of the subgroups $H$ is that one of the generators you are constructing for $H$ is not inverwtibleinvertible. I don't know why that is.