It won't let you reuse placeholder names** so you need :StartDate1 and :StartDate2 then provide the same value for both when you execute.
$stmt->execute(['StartDate1' => $StartDate, 'Startdate2' => $StartDate]);
Alternatively you can use ? placeholders
$sqlAllData = "SELECT * FROM Bank_Data WHERE EntryDate > ? AND EntryDate <= DATE_ADD(?, INTERVAL 6 WEEK) ORDER BY EntryDate ASC, Output";
...
$stmt->execute( [ $StartDate, $StartDate ] );
** it will if if you use emulated prepares, but that is a bad idea.