well, to kinda "bump" this thread, i got another idea how this could be realised, probably way easier to implement, but a little less userfriendly i guess:
when using an unused frequency transmitter on a unlinked teleporter, the teleporter gets an unique ID, which is saved in the transmitter, as well as the last known position. when linking the second teleporter, those data get saved in the second teleporter (duh). and each time you use this teleporter, it will first check if the target teleporter is still at the last known coords (saving same cpu power), else it has to search for the teleporter with the matching ID... ID could be saved as meta-data ("damage value") i guess
Why not adding all the Teleporters to a List (i guess Frames are not destroying the Pointer/Adress of the Block), and then just go by the Listindex, to choose the Teleporter to connect.
My Idea is much easier to code as you think. Its just a List, which points at all Teleporters (Frames do not destroy those Pointers), and you go by the Index (ID) of the Teleporter and then just make TeleporterList[ i ].x, TeleporterList[ i ].y and TeleporterList[ i ].z to get the actual Coords of the Teleporter completely lagfree.