Without knowing the actual schema for the tables and the data we can only guess. On possibility is that you're joining the table using sibling paths thus resulting to duplicating records.
Perhaps the easiest way to quickly find out what's duplicating is to remove the grouping and including the keys of each table in the result. This way you can have a look at the data from which you get the false results and since you know the data and the structure of the tables it's easy to spot what are extra rows. After finding those, it's more easy to see the problem in the query, joins, missing table, extra table missing condition etc...
So have a try with something like
select CAST(CustomerAssignedTaskExec.ScheduledDispatchedDateTime as DATE) as 'Date',
inner join CustomerAssignedTask on CustomerAssignedTask.Id = CustomerAssignedTaskExec.CustomerAssignedTaskId
inner join CustomerTaskDetails on CustomerTaskDetails.Id = CustomerAssignedTaskExec.CustomerTaskDetailsId
inner join CustomerAssignedTaskItemStatus on CustomerAssignedTaskItemStatus.Id = CustomerAssignedTaskExec.AssignedTaskItemStatusId
inner join customers on customers.CustomerId = CustomerAssignedTask.CustomerId
where Customers.StoreId = @storeId
and CustomerAssignedTask.TaskStatusId = @runningTaskStatusId