Thanks tulamide and Tobye for the replies.
The "add obstacle" is used only "on start of layout".
The reason I added the "is calculating path (inverted)" at line 66 was because I was unable to run the code from within a sub-event (I got a message at runtime saying the GUI will prevent this in the future!), so I had to add my code on the root path. For this reason I figured it was prudent to add the "is calculating path (inverted)" or it would continously re-initiate the "calculate path" code and never actually allow it to finish!
But thanks to your replies I set a text output on "On pathfinding failed to find path" and that's exactly the problem - it can't find a path, so it was continously re-running the pathfinding routine, and giving the impression it was always running but never finding a path.
So my next question has to be... why can it not find a path?! I've only added the walls as obstacles, so it should seemingly be able to calculate a route from anywhere within the grid to the "GhostHome.X,GhostHome.Y" position, which is in the centre of the screen. From what I've read if it couldn't find a path because the home location was blocked off then it should pick the nearest spot instead.
Aside from the pathfinding behaviour the ghost just has a bullet behaviour, which I disabled before I started the pathfinding routine in case this would affect it.
Am I right in thinking it should be able to find a path? What am I missing?! 8 direction movement maybe, or some other pre-requisite? I tried making the GhostHome sprite visible as well, in case it has to be visible for the pathfinding to work, but that didn't help :(
Thanks again! :)