(As you have done)
$Delv_{pl,p,t} \le Stck_{pl,p,t} $
$O_{c,p,t}^k (\delta_{k,pl}-1) \le \sum_p \tau_{c,pl}Delv_{pl,p,t} \le \sum_p O_{c,p,t}^k \delta_{k,pl} \ \ \forall pl \in Pl \ \ \forall t \in T \ \ \forall c \in C \ \forall k \in$ Orders
$ \sum_{pl} \delta_{k,pl} \le 1 \ \ \forall k \in $Orders
where $\delta_{k,pl} =1$ if plant $pl$ is selected for order# $k$, else 0 and $ \tau_{c,pl}=1$ if Pl is among those where customer $c$ sources from.
$\delta$ is a binary variable while $\tau$ is given. You can use set membership logic as well like $ C_pl = \{pl: pl \in $ Customer sources for C}
In your case you are using length of set in Constraint (3)
I don't think any of your constraints are addressing this in this way.
Constraint (2) is saying 'get product $p$ from one or all (that what sum does) plants'. Trying replacing $=$ with $\le$ as there's a chance that a product in an order will not be delivered from the plant chosen. Constraint (3) is then attempting to restrict number of plants involved in every order to 1 but there in the constraint you are coding p_ == o.