You have to do this another way. Three possibilities:
1) Use a Script Trigger in the portal to cancel entry. To prevent manual entry via the keyboard, use the OnObjectKeystroke trigger. For value list entry, use OnObjectModify. In the first case, test for any keystroke other than the one(s) you might want to allow - for example, you might want to allow people to use the arrow keys or the Enter key to commit the record. If it's anything else, exit the script with a result of False, which will cancel the keystroke and prevent the new record creation. In the second case, use Revert Record to remove the new related record.
2) Disallow creation of related records and use a scripted process (with maybe a popover) to create the new records. Then you can just trap for the lock condition and deny access if it's true.
3) Use a completely different layout for locked records. Navigate between them using the OnRecordLoad Script Trigger.
I really appreciate you taking the time to put forward a couple options. I think one of these might do the trick.It's funny that they didn't just add "limited" to the Create selection in security. Or maybe they should have a calculation for field entry in browse mode. That way I could prevent someone from even entering the field if the service order was locked.
You can do that with a Script Trigger, too (OnObjectEnter). The problem with doing that is it prevents users from copying the data in the field.