A little tip and maybe a bug.
I just found out you can use Arw_GetActive and receive the correct ID for the arrow when the command finds the arrow on the chart, but at times when you subsequently get the time for the arrow using arw_GetTime_s the command will come back with a time of -1. So it seems that, to protect yourself, it is better to get all the items you need first (and verify they are there and correct) before going off to execute a bunch of code. It may be that, on the next tick, you get all the items completed. To me it seems like a bit of a timing issue bug in MC.