The slowdown is due to the creating and destroying of Array objects. I was able to reproduce it in a simple capx that did just that and the fps degraded over time.
I don't know really, maybe it's caused by object recycling, but that would be odd since that works flawlessly with sprites.
You can redesign the algorithm you're using so that you don't have to create and destroy any objects at all.
Here's my attempt at it using one DataStructures object. Only the heros movement is recorded and the allys are positioned at distances down the path.