Ravi,
1)
You need to use the functions TranslateByDegree or TranslateByOffset. See the code sample below. Be aware that you need to set the map unit of your map correctely:
wpfMap1.MapUnit = GeographyUnit.DecimalDegree;
PointShape pointShape1 = new PointShape(-96, 33);
PointShape pointShape2 = new PointShape(pointShape1.X, pointShape1.Y);
//Moves point by distance and angle. 0° North, 90° East, 180° South, 270° West etc
pointShape2.TranslateByDegree(5, 45, wpfMap1.MapUnit, DistanceUnit.Kilometer);
//Moves point by offset in X and Y:
PointShape pointShape3 = new PointShape(pointShape1.X, pointShape1.Y);
pointShape3.TranslateByOffset(5, 5, wpfMap1.MapUnit, DistanceUnit.Kilometer);
2)
If you want to get the point on the line that is 50 kilometers from the last vertex of the line, the code that you are showing with function GetPointOnALine seems to be correct. I would recommend getting the latest Bug build of Wpf. I know that a fix was done to GetPointOnALine recently.