As default invocation (for a better performance) JBoss is using an invoker for bean-to-bean calls which is doing a call-by-reference.
You can configure the invocation within the beans deployment descriptor (jboss.xml). If you are using the ByValueInvoker every call is done with marshalling/unmarshalling.
Search the forum to find out how to use the ByValueInvoker. This was discussed many times.