In you capx I see the same code you posted in your first capx.
I'm installing Dropbox in this machine since my other blowed up on me.
What i mean is that in X an Y expresions of "Set angle toward" you could put:
X: lerp(Self.X, Touch.X, dt*0.5)
Y: lerp(Self.y, Touch.y, dt*0.5)
Play with dt until you have something less jumpy.
Also you can use this to stop the object at the touch position (your finger or the mouse's cursor):
(As a subevent of "Is in touch")
System|>Compare two values|>distance(Player.X, Player.Y, Touch.X, Touch.Y)<=10 = Set Bullet speed to 0
Play with that 10 to match your desired offset. It helped me overcome shakiness when the player reach the destination point.
About the sprite trespassing your walls. I don't see it happening in my example.
My only difference is that my wall objects have always the same or more width. And i have "Pixel Rounding" on. But i doubt this cause issues on collisions.