Thanks all, its the scalar operators in the insert;
,Cast(convert(varchar(50), dbo.[GMT.Calendar.AggConvertDateTime]([TradeVolume].[Date], Location.Efa), 110) as datetime) as DeliveryDate
,case when Location.Efa <> 1 then
null
else
Cast(convert(varchar(50), dateadd(hh, 1, [TradeVolume].[Date]), 110) as datetime)
end...