It's hard to tell what's going on by these screenshot. My guess is the event 76 is triggered multiple times and multiple people are marked with status=1.
Event 79 is definitely wrong. Condition "Build_ID=Person_Build_ID" checks instance 0 of person object only! So if there are many people, this event will almost always be executed on every tick, clearing Builder_On_The_Way state.
If there are multiple buildings being constructed, event 78 may move the Pathfinding_Destination sprite from one building to another on every tick.
In other words, it's a mess
I suggest you put Brower.Log into these events and output some debug info, then you'll be able to see how everything works.
Object.PickedCount is a useful expression, it can tell you how many instances are picked in each event.
I would change these events completely. Testing a bunch of instance variables for lots of objects on every tick is bad for performance and it's hard to program these events correctly.
Use triggered events! When player clicks on the map to put a new building, pick all free people (with status=0), then pick one that is closest, direct it to the building site, set status=1.
On pathfinder arrival, change status to 2, start building. On completion, set status to 0.