That makes sense because it's the formula you are using references the same thing. What about changing your code to paste values? Something like:
Code
Sub GetMyItem()
Sheets("Sheet1").Cells(27, 7).Formula = "=MyProgram|MyTopic!'MyItem'"
Sheets("Sheet1").Cells(27, 7).Copy
Sheets("Sheet1").Cells(27, 7).PasteSpecial xlPasteValues
End Sub
Sub GetMyItem2()
Sheets("Sheet1").Cells(29, 7).Formula = "=MyProgram|MyTopic!'MyItem'"
Sheets("Sheet1").Cells(29, 7).Copy
Sheets("Sheet1").Cells(29, 7).PasteSpecial xlPasteValues
End Sub