Hi Nick,
I would like to tell you that you are right and SimPhy allows you to simulate HGT between specific species, but it would not be true. HGT events happen at locus tree level, and therefore are simulated during the locus tree simulation. Modifying the node kind a posteriori would only allow you to simulate coalescent bounds on that nodes, but this is not what you are trying to do.
The problem here is that you are thinking about migration and simulating HGT, and they are not equivalent in our model. In SimPhy, HGT is simulated as a copy of a locus into a different, contemporary species, with replacement and fixation.
Consider the species tree ((A,B),(C,D)); and a HGT event from C to B, and that we are simulating an HGT event from B to C. The resulting locus tree would be ((A,(B,C)),D). The coalescent process will simulate the coalescent process across those branches, with a bounded coalescent in the B,C node. Therefore, C leaves would be always clustered together, since only one individual received the transference in the original branch C.
If you are still interested in simulating HGT between specific species, I would say we have two options:
a) Simulate Locus trees with SimPhy (if you are interested in GDL) and generate HGT events between specific lineages applying SPRs with another piece of software. Then tag HGT nodes with the specific tag and feed them back to SimPhy to simulate the gene trees.
b) Modify SimPhy to implement HGT events between specific lineages. It should be pretty easy and I could guide you.