As far as i know a reference attribute can only be restored, if it also implements IF_SERIALIZABLE_OBJECT. You can't just put your object into a container which implements IF_SERIALIZABLE_OBJECT, it has to implement the interface itself, both ways.
Unfortunately, i don't know how to solve your requirement, where you get the (non serializable) object from cl_sa_doc_factory=>get_doc_from_kw.
edit: Maybe you can just transfer/serialize your lt_context, and call cl_sa_doc_factory=>get_doc_from_kw in the target system.
regards,
Thomas