Solved - See next post.
UPDATE: I finally got to the bottom of my mysterious problem.
There was a function that tested for a nearby placeable object to use to play a sound. If it could not find one, it created its own placeable, used it and then deleted it. The problem was, I was deleting the “tested” placeable and not the “new” one!
Doh! (Bug from 2nd April 2019)