There are a few reasons why a baseline may not behave as you'd expect. Essentially we are making this calculation based on the chain of active precedents across the template so anything that disrupts this can have unexpected outcomes.

Template Check:

The first thing to look at when the baseline date isn't as you'd expect for a task is the template itself. If there is no precedent for a task the baseline will always calculate as if it was the first task in the callsheet. If the task does have precedents then make note of the delta days between it and the precedent task as well as the duration of that task. For more information on this refer to our article on updating template items:

Removed Precedent tasks:
Something else to consider is whether or not the precedent tasks have been deleted. This can happen for a variety of reasons and should probably be something to consider when creating the template. When all the precedents for a task have been deleted the baseline will behave the same as it would if the task has no precedents. For example you might set security as the only precedent for data cabling but on this particular job there is no security being installed and so this task has been removed from the callsheet. You can check if a task is deleted under the management node:

More often than not the task deletion is as a result of the Inclusion rule being set for PO Matching on this task, you can read more about in the following article:

The way around this is to make sure that your precedent tasks cover all scenarios. You would usually do this by setting more than one precedent on tasks where the "typical" precedent is sometimes not on the job.