It's impossible to understand what that code is supposed to do, and why it is written that way. Looks like there is a design problem.
But change:
'
SELECT F1 FROM Evaluation.CalculatedLimits_' + CAST(@PlantLineMapId as varchar) + ' WHERE PROCESS = 2 AND TIMESTAMP = ' +
'''+CONVERT(nvarchar(50), @TempStartDate,121)+''''
to
SELECT F1 FROM Evaluation.CalculatedLimits_' + CAST(@PlantLineMapId as varchar) + ' WHERE PROCESS = 2 AND TIMESTAMP = @TempStartDate,121)'
and pass @tempStartDate as a parameter to your dynamic SQL:
EXEC sp_executesql [@](/users/na/?userId=070292c7-7ffe-0006-0000-000000000000), N'@TempStartDate datetime', @TempStartDate
But the whole things looks like you need to back to the drawing board.