After messing around with it a little bit, I found a solution to my own problem.
What I did is set a variable as an object equal to the current value of the binding source. Then I suspended the binding source and called the Context.DeleteObject() method and finally resumed binding.
This fixed my problem.
Here's an example in case anyone else runs into this same problem.
Dim (variable) As (object) = (Name)BindingSource.Current
(Name)BindingSource.SuspendBinding()
(Context).DeleteObject((variable))
(Name)BindingSource.ResumeBinding()
And here's the actual code I used.
Dim CurrentObject As NEIPurchasingDAL.Category = CategoryBindingSource.Current
CategoryBindingSource.SuspendBinding()
PE.DeleteObject(CurrentObject)
CategoryBindingSource.ResumeBinding()
Update:
The solution I proposed didn't fix the problem like I first thought. I still have the same problem of it not always deleting the correct entity, the solution I proposed seems to be more accurate though, but not perfect.