This code recreates the issue:
public Page()
{
InitializeComponent();
AnchorPattern ap = new AnchorPattern(new AnchorPoint[] { new AnchorPoint(50, 0, true, false), new AnchorPoint(50, 100, false, true) });
diagram.DefaultShape = Shapes.RoundRect;
ShapeNode pb1 = new ShapeNode(diagram);
pb1.Bounds = new Rect(268.8, 268.8, 96, 69.12);
pb1.AnchorPattern = ap;
diagram.Nodes.Add(pb1);
ShapeNode pb2 = new ShapeNode(diagram);
pb2.Bounds = new Rect(268.8, 268.8, 96, 69.12);
pb2.AnchorPattern = ap;
diagram.Nodes.Add(pb2);
ShapeNode pb3 = new ShapeNode(diagram);
pb3.Bounds = new Rect(268.8, 268.8, 96, 69.12);
pb3.AnchorPattern = ap;
diagram.Nodes.Add(pb3);
diagram.Links.Add(new DiagramLink(diagram, pb1, pb2));
diagram.Links.Add(new DiagramLink(diagram, pb1, pb3));
var layout = new LayeredLayout(MindFusion.Diagramming.Silverlight.Layout.Orientation.Vertical, 80, 250, new Size(10, 10));
layout.LinkType = LayeredLayoutLinkType.Cascading;
layout.Anchoring = Anchoring.Reassign;
layout.Arrange(diagram);
}
If you move one of the nodes then the anchor pattern is honoured. (but not when first arranged).