Hi David,
Yes, you can either change the data source to add a minOccurs=1 to the items you don't want deleted. In addition, you can write an OnBeforeChange handler that filters the add/remove events and returns true or false for those. I forget the value, but it should be documented in the SDK (or you can just try one and see. Good luck!
Patrick Halstead [InfoPath MVP]
InfoPathDev
Patrick Halstead
Project Manager at Qdabra