Note that when defining your columns that they must be in the same ordinal position as defined in the stored procedure. Changing the ordinal position in your metadata definition will NOT change the ordinal position, but rather it will simply change the column names returned by your query.
EXEC usp_Customer WITH RESULT SETS ((LastName nvarchar(50) NOT NULL, FirstName nvarchar(50) NOT NULL))
SSIS OLEDB Source: A Note on Using Stored Procedures with Temp Tables
To maintain a session in SSIS, set "Retain Same Connection" property of the Connection Manager to True
set DelayValidation for that task as True