I find the formulation of this problem strange, and I wonder whether you are giving us enough information. How exactly do you know that this presentation defines a virtually nilpotent group?
Anyway, with the information given, all that you do algorithmically is to find all subgroups of index $n$ for $n=1,2,3,\ldots$ (there is an algorithm called the Low Index Subgroups Algorithm to do that), and compute a presentation of each subgroup using the Reidemeister-Schreier algorithm. That can all be done in GAP or Magma.
The difficult part is to examine each presentation and try to prove that the group defined is nilpotent. The question of determining nilpotency of a given finitely presented group is undecidable in general but, if the group defined is nilpotent, then it is possible to verify this using a method of Sims involving the Knuth-Bendix algorithm. Of course, in a specific example you might be lucky, and it might be easy to see directly that the presentation defines a nilpotent group. But the problem is very difficult in general.
So for each subgroup of the original group, you attempt to verify that it is nilpotent. If you succeed, you are done. But if you fail, then that does not prove that it is not nilpotent, so you need to come back periodically to each subgroup and try a bit harder to prove it nilpotent. Since we know somehow that the original group is virtually nilpotent, this approach is guaranteed to suceed eventually, but it would be tricky to program.