Right, found a really simple solution that seems to work.
Just call the constructor each time I requery
this.tblMyCollection1 = new tblMyCollection();
<< Join Query >>
tblMyCollection1.Load(query);
namespace BusinessObjects { public partial class CategoriesCollection : esCategoriesCollection { void Test() { this.Table ..... } } }