Of course you can use the WOM/POM. You need to consider DRY (Don’t Repeat Yourself) and Single Responsibility/Ownership (Each function is owned by exactly one object, and is the sole responsibility of that object).
You can define parent/child relationships within your model objects to deal with the fact that your application creates child windows.
So, if your application has a login, you’d have a
LoginWindow object to handle logging in. You might also have a
HomeWindow object for the home screen after a successful login. If your application uses components that can appear on more than one window/screen/module define an object for these components, such as
MiniCartComponent for (as an example) the shopping cart icon that displays on multiple screens/pages in a web store app.
My approach here would be to start with the obvious objects, create helper libraries for routine repeated tasks like navigation between screens, and refactor as necessary until the whole thing was as clean as I could get it.