I'm trying to run simpleFoam on a test geometry at about M=0.05, laminar. I set up the case using FoamX with an inletOutlet boundary condition in the far-field, but since my flow is external (and there is only one hemispherical patch) this results in the solution converging to a quiescent state.

If I change the 0/U boundary condition to fixedValue the problem becomes overdetermined and never converges.

Is there a more appropriate boundary condition, or a method for specifying a velocity-driven external flow rather than a pressure-driven one?

This results in very large numbers of iterations for p (about 200 to produce a couple of orders of magnitude drop in the residual) and the solution becomes non-physical after about 20 pseudotime steps.

As I understand it, using zeroGradient for all the boundaries of p (well, there is a symmetry plane, but that is the same thing) means that the matrix is underdetermined?

You may be able to improve convergence by selecting more stable/lower-order schemes, in partricular you might find it useful to use the limited laplacian. However, improving the mesh is always preferable if possible.