CAN ISO_TP data receiving problem

Hello, I’m very new to using CAN BUS, because of the limit of 8 byte of CAN BUS protocol and my application requires sensing much more than 8 bytes. I came across ISO_TP which allows sending much higher number of bytes. The sender is an Arduino nano and receiver is Arduino Mega. At the sender side, when i print the values to crosscheck, i can see all data by sent but at the receiver side, however i can only receiver 6 bytes and then all the other bytes becomes 0s. I have attached the picture of the result from both at the sender side and at the receiver side. I’m having a challenge making it to work, attached is my code.
Thanks in advance

//Sender:

#include <mcp_can.h>
#include <mcp_can_dfs.h>
#include <SPI.h>
#include <iso-tp.h>

#define MCP_INT 2
MCP_CAN CAN0(10);
IsoTp isotp(&CAN0,MCP_INT);

struct Message_t TxMsg, RxMsg;

//uint32_t can_tx = 0x8801F456;

uint32_t can_tx =0x7FF;
//long unsigned int can_tx = 0x18263598;

byte data1[] = {0x09, 0x60, 0x01, 0x90, 0x1F, 0x40, 0x03, 0x20, 0xC8, 0x02, 0x58, 0x02};

void setup()
{
Serial.begin(115200);
pinMode(MCP_INT, INPUT);
CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ);
CAN0.setMode(MCP_NORMAL);
TxMsg.Buffer=(uint8_t *)calloc(MAX_MSGBUF,sizeof(uint8_t));
}

void loop()
{
TxMsg.len=sizeof(data1);
TxMsg.tx_id=can_tx;
//TxMsg.tx_id=(can_tx|0x80000000);
memcpy(TxMsg.Buffer,data1,(sizeof(data1)));
Serial.println(F("Send..."));
isotp.print_buffer(TxMsg.tx_id, TxMsg.Buffer, TxMsg.len);
isotp.send(&TxMsg);
}

//Receiver:

#include <mcp_can.h>
#include <mcp_can_dfs.h>
#include <SPI.h>
#include <iso-tp.h>

#define MCP_INT 2 // "IRQ: if pin is low, read receive buffer"

MCP_CAN CAN0(53);
IsoTp isotp(&CAN0,MCP_INT);

struct Message_t TxMsg, RxMsg;

//uint32_t can_rx = 0x8801F456;

uint32_t can_rx = 0x7FF;
//long unsigned int can_rx = 0x18263598;

void setup()
{
Serial.begin(115200);
pinMode(MCP_INT, INPUT);
CAN0.begin(MCP_ANY, CAN_500KBPS, MCP_16MHZ);
CAN0.setMode(MCP_NORMAL);

RxMsg.Buffer=(uint8_t *)calloc(MAX_MSGBUF,sizeof(uint8_t));
//RxMsg.rx_id=(can_rx|0x80000000);


//RxMsg.rx_id=can_rx;

}

void loop()
{
RxMsg.rx_id=can_rx;
isotp.receive(&RxMsg);
isotp.print_buffer(RxMsg.rx_id, RxMsg.Buffer, RxMsg.len);
//Serial.println(RxMsg.Buffer[7]);
}

Receiver.png

Sender.png