You should redistribute at the edge. But do you need redistribution, or your network is primarily interconnecting ASs? You can just peer all BGP routers (if there are only 4, you can do full mesh) and not do any redistribtuion but run OSPF on them and disable synchronization.
Prioritization of BGP paths can be done in many ways. You can use local preference for outgoing traffic and AS Prepend for incoming. Or MED, or community, depending on capabilities of the other side.