It's false. Take $X = B = \mathbb{C}^2 \cong l^\infty(\{0,1\})$, and define $f: X \to B$ by $f(a,b) = (a,.5(a-b))$. Then $f(1,1) = (1,0) \geq (0,0)$ and $\|f\| = \|f(1,1)\|_\infty = 1$, but $f(0,1) = (0, -.5) \not\geq 0$.
Edit: but maybe it is worth pointing out that if $f(1_X) = 1_B$ and $\|f\| = 1$ then $f$ must be positive. You can reduce this to the scalar case by composing $f$ with arbitrary states on $B$, as dr. mop suggested in the question.