Hey Major,
I haven’t had a chance to review your attached configuration files, but assuming everything is correct with your as-override and MPLS configuration, then this is behaving how you’d expect. AS override doesn’t REMOVE an autonomous system from a route, it REPLACES it with your own. So in this case, NWLLA OMNI OLL. The AS Path is no longer 14 56, but rather 14 14.
Now when router 6 receives the route, it checks if it has network reachability, which it does. It then checks weight, that’s the same. Then local preference, that’s the same. It’s not a locally originated route, so now we get to AS Path length. The path through the MPLS network is longer so it doesn’t get added to the routing table.
Now it gets more fun, because the iBGP route is the best route, router 6 will now advertise the route back up to router 4, which because there is only a single AS in the path, as opposed to the one it learned from router 1, router 4 will favor the path through router 6 to get to the destination, so while your layer 3 VPNv4 is properly forwarding traffic, they are both advertising the same routes at each other. Since each side has a better route through their direct connection to the AS, they don’t install the routes they learn from MPLS in to their tables, so they don’t advertise them back out as eBGP routes.
This is an interesting situation you’ve created for your lab, and is fun to look over, but as long as you follow the rules for each device, you’ll see why it gets the results it does. If you shutdown your connection between R5 and R6, you should see R6 learning the route via eBGP. You could also change the Route Distinguisher for only one VRF, which would allow multiple routes to be learned by both sides of the VPNv4 network. At that point it should at least advertise the route to R6, but it still won’t install it due to the issues mention above. But keep in mind, your R5 will also then learn the route coming back from R6, which could cause some recursion issues. I could imagine the route bouncing in and out of the table. R5 loses the locally connected route, stops advertising it to R6, R6 then tries to update R4, but R5 just learned the route from R1, which it then advertises to R6, which it then tells to router 4, and round and round you go.
But that’s just me throwing out ideas to play with. At the end of the day, the behavior you’re seeing is due to AS-Path Length in this case.