What you're most likely hitting up against here is "Interline agreements" (not to be confused with Interline baggage).
When you book multiple flights on a single "ticket", even when the flights are on multiple airlines, the ticket is issued by a single airline. eg, if you say SFO-JFK on United, and then JFK-LHR on British Airways, the ticket will be issued by either United or BA. Note that this is different to code-share flights - the flight numbers will still be the correct airline codes, and the entire process will be basically invisible to the customer, it's just down to who actually sells you the ticket.
They can do this because United and BA have "interline agreements" with each other, which means that they can sell flights on each others airlines. That's not to say that they want to do this (United would prefer you flew JFK-LHR with them!) so it may not be possible to do it (for example) via their website - but they can do it.
Sometimes interline agreements are one way. For example, Continental used to be able to sell flights on Jetstar, but Jetstar could not sell flights on Continental.
To make it even more confusing, sometimes airlines will only allow certain fares to be sold via interline agreements, and/or only allow those fares to be sold for departure from specific countries (eg, for an itinerary originating from JNB they are available, but not for an itinerary originating in MPM)
As a very broad statement, most of the major airlines have interline agreements with each-other, whilst most low-cost carriers do not have interline agreements with anyone!
In your case, most likely the airline that flies the Maputo to JNB flight does not interline with the airline that flights JNB-PDX so you can't purchase them on the one ticket. The higher priced fare you're getting it probably on a different airline, or if not at least a different fare class. Sometimes the only option is to take the risk and buy two tickets (potentially backing it up with travel insurance in case of any problems!) or change your schedule to fly into the connection city much earlier - possible even the day before.
Sometimes trying a different website/booking engine will help, as this might change which airline the ticket is issued by. eg, instead of booking the ticket against the airline that flies JNB-PDX, with MPM-JNB being done via an interlined airline, it might be booked against the airline that flies MPM-JNB, with JNB-PDX being booked via the interline agreement.