SSIS Error :Cannot roll back .No transaction or savepoint of that name was found
The general best practice is to perform transaction management in either the client application (SSIS), server-side T-SQL, but not both. 
This allows the SSIS package to determine and control the transactional unit of work and manage transactions among tasks that support transactions.
Individual stored procedures shouldn't start transactions in this case since the outer transaction will ensure all-or-none behavior.

You could instead design the package such that it is idempotent (rerunnable) and not use transactions at all, perhaps also using checkpoints to avoid rework of expensive processing. In that case, the proc could be coded to insert only if the new row 
doesn't already exist. This technique helps avoid issues caused by long-running transactions, such as blocking and large transaction logs.