I too had this problem earlier. the mistake what we do is we put the BL Start Date column in the User interface but never observe the the baseline is assigned or not. We only think we have assigned. So you check once again whether the Baseline is assigned or not.
Once the Baseline is properly assigned the dates will never move.
Are you showing in your schedule start date or BLstart date? because if you are showing the start date and you did not put actuals, the date will move as per your datadate since it is the actual not the planned.