Во всяком случае, у вас есть синтаксическая ошибка при определении элемента Border.ContextMenu. Правильный синтаксис (пограничного элемента):
<Border BorderBrush="Black" BorderThickness="1"
Margin="2"
ContextMenu="{StaticResource CalcMenu}">
<TextBlock ... />
</Border>
Сказав это, вы можете сделать много оптимизаций. Во-первых, вместо создания контекстного меню для каждого элемента, вы можете переместить CalcMenu в раздел (на один уровень выше) или даже дальше - в главное окно.
Во-вторых, почему вы определяете отдельное контекстное меню для каждого элемента? Действительно ли важно, чтобы контекстное меню не появлялось, когда мышь находится между полями? просто установите контекстное меню для всего списка:
<ListView x:Name="CalcList" ContextMenu="{StaticResource CalcMenu}">
...
и определите CalcMenu как ресурсы главного окна или вставьте элемент ListView (не статический ресурс).