I get it now. You have tons of small lines. You first join them into one big line using GeomMergeLines, then you split that line into 500m parts. It seems you don't want to split small lines into 500m parts directly because you want these parts to continue from one small line to another, if some of the small lines touch.
Fine. The thing is, GeomMergeLines does not join individual branches together, it just collects all branches of all lines. The lines go in essentially random order. So, when you split the result into 500m parts, whenever one of the parts reaches the end of one of the small branches mid-way, it then continues on another branch. That second branch is essentially random, so given that the total number of lines is big, it is nearly always far from where the previous branch ended. That's why many of the parts you are getting are disjoint.
Try joining small branches in the big line returned by GeomMergeLines by normalizing its metric. This can be done using a transform, or using a call to GeomNormalize. Then repeat the split.
I did that and the total number of branches in all 500m parts reduced from 7072 without normalization to 5130 with normalization. If you don't want any parts to be disjoint, ie, you want to keep individual lines as long as possible (continue each line until it runs into a 3+-way intersection) and then split each such line into 500m parts, decompose the normalized big line into individual branches before performing the split.