While I am not ready to point you to an exact place of an error (and do not expect me to, as we still have not enough information), but several notes I will do in my humble tries to step forward.
"perl_call_method" call is 100% not portable between different installations of perl, you should use "call_method" and let "perl.h" to correctly prefix it. You're in danger of facing hard-to-fix errors if you're just following requests of your linker.
Is your extra PUTBACK; at the very end of "PackRaw" macro is intentional?
(most important point) As logic says, your code should not call "Raw" method at all, because your macro first checks for "SvRV" and will not suffice for sure. Is there any other place where your "Raw" method is called? Can you output a call trace?