Well it's a base object that I turned into a reference by using placeatme. But if I delete the reference using DeleteReference, the other scripts that use that base object (turned reference) don't work properly.
You have not yet fully understood the relationship between a base object and a reference. A Base Object simply cannot be turned into anything else (though there exist a number of OBSE functions that temporarily modifies single aspects of a Base Object, for that gaming session).
What you do with PlaceAtMe, is to create one reference of the type defined by the Base Object, but that does in no way affect the Base Object. Deleting that reference only affects that single reference, and doesn't affect the Base Object or other references created from that Base Object.
You said that the base object isn't effected by it, but my experience with these scripts is that it is. So, why is that?
Probably because the script is not working as you think

Another thing. According to the OBSE documentation, you cannot delete references found in your inventory. I've turned a torch (base object) into a reference. Being that it is found in my inventory, I guess that means I cannot delete it anyway.
You can delete things from your inventory, but things in your inventory are not real references, but more like pointers to the Base Object.