Hi Sam -If I have read your requirement correctly .
1-Search Functionality - Create an UI -On Search button -Call a Datapage and pass the CaseID as a parameter and get the results using obj-browse from desired database . As a result you are supposed to build a Repeating Grid below for displayint the result .
2 - On Click of CaseID it should get assign to worklist - Use Open By Handle from Actions -by passing pzinksey -it will open the workobject in review mode .Before that use ToWorklist OOTB activity to route it to urself .
3- Assign To can be provided in multiple ways - One solution you can add it as a menu with Assign To and get list of operators with desired skills and on submit use ReassignToWorklist OOTB Activity
Or after assinging to self -In the flow you can have a different Assignment for doint the same.
@Sam27 -Hi Sam - you do one thing -Which fetching the cases during search from datapage from DB check whom it is assigned to - So in the list you maintain a flag by comparing logged in user and name in results .based on that you can enable Assign or Reassign buttons accordingly.