I have 'Redistribute Other BGP' enabled on that router so it's sending it's routes to the second one. Maybe that is causing the issues?
But shoudn't filters work anyway?
You should use a single instance of BGP for both the EBGP session and for the IBGP session. BGP's best path algorithm compares multiple paths in the BGP table, and then puts the best one into the routing table. If you have multiple processes, then the paths can't be compared by best path - each process will simply stuff its best route for each prefix into the routing table, and then the administrative distance would be a tiebreaker if you happened to set one process at a different distance than the other - but then one entire BGP process is considered "better" than the other for ALL routes learned, and NOT based on the BGP algorithm itself.
Redistributing squashes a lot of path data on each prefix because your router is essentially throwing every route from ISP1 into the trash, and then making its own original route which mimics the original route - but your router is the new origin of these "bootleg" routes. I suspect that a redistributed route won't have the original BGP communities on it (but haven't tested this)
For IBGP, best practice is to have a loopback IP address on each router, and to use these loopback addresses when peering with an IBGP neighbor.
In the peer settings, you set the update source = the loopback interface / IP, and you configure the address of the IBGP peer to be the other router's loopback IP.
Make sure that the loopback IPs are in your IGP (OSPF) and that the IP ranges on your ISP links are also in OSPF, so that routers will be able to synchronize on them and make the best next-hop decision.
EDIT: I threw together a quick lab to test what redistribute other-bgp routes look like because I wasn't sure, and it turns out that I was incorrect and the communities are maintained. However, the point I made about routing decisions is still true.