As you have not supplied your code, it is tricky to know where things go wrong in your case.
Note that by assigning dirichlet conditions on the whole outer boundary, you have to normalize the pressure as it is only determined up to a constant.
The first thing I would do is to verify that the Taylor-Green example gives correct convergence rates when you use Dirichlet conditions instead of Periodic conditions, as IPCS-like methods are prone to boundary conditions.
The second thing I would do is to remove the manual implementation of the source function with something like this:
from dolfin import *
import ufl
mesh = UnitSquareMesh(10,10)
t = Constant(0.8)
h = Constant(1)
nu = Constant(1)
x,y = SpatialCoordinate(mesh)
u_man = ufl.as_vector((-sin(2*pi*t)*(y*(y-h)+x)/2/nu,
-sin(2*pi*t)*(x*(x-h)-y)/2/nu))
p_man = -sin(2*pi*t)*(x+y)
def E(u,p,t):
return ufl.diff(u, t) + grad(u)*u -nu*div(grad(u))+grad(p)
Second thing I would do is to verify your scheme against the Turek DFG2D benchmark.
I have implemented the IPCS splitting scheme for this case (with Multimesh, but you can just remove every dI and dO term and replace dX with dx).