Just to follow up on this and close this issue out.
I solved the problem thanks to an MSDN article I found that was written by David Gerhardt. I had to amend his code sample slightly to get it to work with my scenario.
The code snippet that I finally used was as follows:
public void btnDelete_Clicked(object sender, ClickedEventArgs e)
{
XPathNavigator selectedLegislation = MainDataSource.CreateNavigator().SelectSingleNode("//my:LegislationDetails", NamespaceManager);
XPathNodeIterator legislationItems = selectedLegislation.Select("./my:LegislationRecord", NamespaceManager);
if (legislationItems.Count > 0)
{
for (int i = legislationItems.Count; i > 0; i--)
{
XPathNavigator legislationItem = selectedLegislation.CreateNavigator().SelectSingleNode("my:LegislationRecord[position() = " + i + "]", NamespaceManager);
if (legislationItem.SelectSingleNode("my:legislationselected", NamespaceManager).Value == "true")
{
legislationItem.DeleteSelf();
}
}
}