Ok i fixed it now

Filter is set with RXFnSIDH, RXFnSIDL. If the mask registers are set to 0xFF the entire filter is used.
RXMnSIDH, RXMnSIDL = 0xFF. That means the receive buffers will only accept messages that are directly equal to the filters.
So messages that are transmitted with these TX regs
TXB0SIDH = 0x56
TXB0SIDL = 0x76
TXB0DLC = 0x04; // Data length 4 bytes. Bit 6 TXRTR=0.
TXB0D0 = t_1;
TXB0D1 = t_2;
TXB0D2 = h_1;
TXB0D3 = h_2;
will only be accepted by the CAN receiver that has the filter
RXF0SIDH = 0x56
RXF0SIDL = 0x76
If the mask is 0xFF for that filter.
RXM0SIDH = 0xFF
RXM0SIDL = 0xFF
The bits in the mask activates wich bits in the filter shall be used. So if you have the mask 0xF0 only the most significant nibble of the filter will be used.
Also look at what RXB0CONbits.RXM0, RXB0CONbits.RXM1 are set to.
Standard ID or Extended ID. I only use standard ID, but I guess if Extended ID is used also the RXFnEIDH, RXFnEIDL filters are used. Also look at the RXF0SIDLbits.EXIDEN bit, should be zero when using only Standard ID.