Attached is the updated lisp.
When the block is created it is made annotative thanks to a little Lee Mac snippet I found [link is in file above the new (defun annotativeblock)].
The block now has two layers. The line is in layer 0 colour 90 The attribute is in layer "_chg text". I hope this is correct.
The Error on the last chainage was caused by the increment inside the mapcar exceeding the polyline length. I've added a check so that when num > len set num = len
Although the block is annotative I'm afraid I have no idea how to make it 2.5? in paperspace, perhaps someone else can step in as I have never worked with annotative blocks.
I have also tidied up a few lines of code. The layer is now only created if it doesn't exist.