didn't read it all. 
If you use my library or write your own finditem function that returns a table based on type, this script is what I use to key nav's stones.
I've been able to solo key the stones in the wrong order with this.  Just go flying by on horse back within 3 tiles of stone, and it should key it.  You have a bit of a longer reach with the nav stone than you normally do.
dofile(getinstalldir()..'/scripts/kalilib.lua')
UO.CliNr = clientmenu()
ruins = 959
while true do
  s = FindItemOnGround('Type',ruins,4)
  if #s > 0 then
     if s[1]['Col'] == 0 then
        UO.LObjectID = s[1]['ID']
        UO.Macro(17,0)
        print(s[1]['Col'])
     end
  end
  wait(100)
end
I've pulled 5 tangles, and only one has been dropped in my back for looting rights.