Hi Steve,
All of it is possible.
However, I'd question the need to store everything in a list outside of the library - you can just create a view where "Document Owner equals [Me]" and bookmark a link to that view, then you'll only see yours - and you can still create a Planner-task creating flow. Based on my experience I don't see a need for the list at all.
But .. I'll assume for now that you have a reason for wanting this duplication, so I'll go ahead with it.
First, here is my demo data. I understand you will have multiple document owners, and the solution I show will still select only yours. I am just the only person in my tenant. So lonely in here...
1) The document library with all the policies in it. DueDate, Document Owner, Name, and Title are all I have here but the number of fields won't matter.

2) The list where I want to track my beloved documents. I've made a spot for the name of the document, the due date of review, LibraryID, and the assignee. (RE: Assignee -- I'm going to assume right now that you will manually assign which document goes to which report, in your list; however, this could be automatically done through a matrix - ie, policies that are HR always go through Todd, policies that have the word conduct in them always go through Lucy.. etc.)

This will end up being 3 flows -- your initial flow to populate your list, then the flow that will keep your list in sync with your library, and then the flow that will send out tasks within X days of the due date.
The first flow is quite simple: populate your list with your document information
1) Manually trigger a flow
2) Use the "Get files (Properties only)" action, and set the Filter Query to DocumentOwner/Title eq 'Steve Ray'

3) Now we'll add the "Create Item" action, and point it at our list. We'll pop the Dynamic Content from the "Get Files (Properties Only)" output in here - as soon as we do one, it turns into an Apply to Each - which is exactly what we want.

Note: I forgot to show in this screenshot to update your LibraryID field with the ID from the library. This comes in handy later.
After you've put all the dynamic content in however you want it, (assignees will go in manually, after, unless we create a matrix) you're good for this flow. Run it once, it'll build your list, then turn it off.
Here's my now populated list:

The second flow is: keep your list in sync with the document library.
1) Create a flow with the trigger "When an item or a file is modified".
2) We are going to use trigger conditions on this flow to ensure it only runs if one of our files has been updated, so it doesn't needlessly trigger. Click on the ellipses in the top right hand corner of the trigger action, and click settings. In the "Trigger Conditions", click "Add", and add the following expression:
@equals(triggerBody()?['DocumentOwner']?['DisplayName'], 'Steve Ray')

Of course, replace the field name with your own field name (instead of DocumentOwner.)
3) Use a "Get Items" action to find the appropriate match in your tracking list. I'm using LibraryID eq 'ID' so it will bring back a single entry.

3) Use an Update Item action to update your list. We'll use the following expression in the ID slot (all this does is saves us from needing to house an unnecessary loop) - body('Get_items')?['Value']?[0]?['Id'] - and of course, populate your dynamic content fields again so you'll capture the changes.

NOTE: You could go through a "get changes" on this to identify which fields need to be updated, but, if you don't have zillions, this will work fine.
The third flow is: send a task to an assignee X days before due date is reached
NOTE 1) I am going to assume we want to notify your reports 7 days before the due date.
NOTE 2) Again, this will require that you've manually assigned reports in your list, unless you have a matrix that can be used.
1) Create a scheduled flow that is set to run once every night.

2) Use the "Get Items" action and the following filter query on your list: DueDate eq addDays(utcNow(),7, 'yyyy-MM-dd')

This is checking to see - every night - if any due date in the list is equal to 7 days in the future.
3) Let's use a Condition now so we can end the flow gracefully if nothing fits the criteria. In the left side, we'll enter this expression: length(outputs('Get_items')?['body/value']) - this is counting the number of items we've returned. The other side of our condition is "is greater than or equal to" "1".

4) On our "No" side, we can leave it empty. But on our "Yes" side, let's use a "Get Item" action to make this a bit easier for you. We'll reuse our expression from before to get the ID: body('Get_items')?['Value']?[0]?['Id'] - this is just going to make it easier to plop in all of your Dynamic Content to the task.

5) Next, we want to create a planner task. We will use the "Create a Task" action. In both of the expressions you see here, we are just formatting the date time to dd-MM-yyyy so Planner will accept it. In the "Start Date Time" i'm using UTCNow(), and in the Due Date Time I'm using "DueDate"

6) And, finally, if you want to add details to the task -- you need to use the action called "Update Task Details". You refer back to the task you've created, and then the rest is pretty self explanatory. This is how you can add references, task description, or a checklist.

Here's how the task has come through for me:

So .. there's the full thing. I kind of question some of the steps in here, I think if it were me, I'd have an approver matrix list, no secondary list, and I'd probably use Approval tasks and have a log somewhere. But! I don't know your full requirements.
Cheers,
Rhia