I would say what's most relevant in your decision is how Perl-dependent you want your C code to be:
If you're comfortable with it being Perl-dependent, you would probably want to have all memory allocation/management done by Perl, using probably-mortal SVs, and PVs from the start.
If you want to maintain the C code as purely C, then you can use the typemap stuff in the various notes here to copy the C-created data into Perl-land, and then free the C-allocated memory.