I think people are driven less by money as we think. Like other posters have mentioned, there are loan repayment options available, many of them quite generous if you can put up with some extra stuff for a few years (military, national health service). Many doctors (specialists too) can make significantly more money working in an underserved area, but they choose not to.
The problem with primary care isn't completely numerical. There are distribution issues too. You have a very high primary care physician population in "more desireable" areas even though people can make more money/get loans repaid if they chose to work elsewhere. Throwing more money at the problem will help somewhat, but many people choose specialties and they choose overserved locations for reasons that go beyond money.
Maybe a better approach that many schools seem to be trying is to bring in students that will work in underserved areas. URMs do this somewhat (I don't want to debate that now), but you can also look at SES and where the student comes from. For example, my state school has a rural track. From what I've heard, it's very difficult to "fake" your way into one of these spots. If you aren't from a rural area, you have an uphill climb. If you have no experience in rural healthcare, you have no chance. Unlike expressing an interest in primary care (which can be faked or changed for legitimate reasons), this type of selection process will be higher yield. A student from a rural area is much more likely to return then a student not from there (even if this non-rural student was offered more money). Returning to a rural area will probably also make them less likely to specialize since it isn't necessary. Though, many of these areas lack specialists too, so it wouldn't be a bad thing if they did specialize too. I don't know if the program is old enough program to see how it works yet, but it seems like a much better solution to me.