Parenting a null causes unexpected results
I think the problem there is that the expression is using the position value for the null. As you know when you parent a layer to another layer its position becomes relative to its parent. So if for example you have a null at [960,540] and you parent it to a layer whose position is also [960,540] the null's position now becomes [0,0]. This means that any expressions that use that value now are seeing [0,0] instead of [960,540].

So you need to feed the null's absolute position in world space to the expression. This is where the mysterious Layer Space Transform functions come into play.

Change the parts of the expression that have the null's position from

CellTower=thisComp.layer("startpoint").transform.position;


to 

startPoint = thisComp.layer("startpoint"); 
//use a variable just to make the next line easier to understand
CellTower=startPoint.toWorld(startPoint.anchorPoint);


What that is doing is translating a point as seen from the relative coordinates of the layer startPoint to the world coordinates of the comp. The point that we're giving it to translate is startPoint's anchor point.