Everything always is drawn at x/y relative to the actor to which the behaviour is attached. So for example if you draw at 100,100 and your actor is at 100,100, the drawing/text will appear at 200,200. That's probably why you didn't see the text before. You can change it by using "switch to screen space" block. So you can keep the behaviour attached to the actor and don't have to move it to the scene.
I haven't done anything like this really, but instead using collisions, I would create a region in the item (f.e. bookshelf) actor behaviour, a region little bigger then the actor itself. Then I would use "when actor enters/exits region" to show/hide text.
This way it will also be much simpler to create different texts for different items.