At first: Not all specific behaviors are easy. Programmable logic also isn´t (as you can see below), So please be patient with the GHL staff.

But back to your problem:

I can shut the skimmer off during maintenace by simply checking the box next to the proper socket. When maintenance 1,2,3, or 4 ends PL1 should delay the skimmer, it doesn't.
Why should it delay the skimmer? You have switched off the socket, not the filter #2, so the delay isnt working. Filter #2 is logically on during your manintenance, even if you switch off the socket -> no delay.

When I do an AWC PL2 turns off the skimmer, this works. When the AWC is over PL1 should delay the skimmer, it doesn't.
Also why should it? You have switched off the socket (with PL#2) but not the filter, so the delay also isnt working. Filter #2 is logically on during your AWC, even if you switch off the socket -> no delay.

When my waste container is full, PL3 shuts off the skimmer, this works. When I empty the container PL1 should delay the skimmer, it doesn't.
Same peocedure as before: You have switched off the socket (with PL#2) but not the filter, so the delay also isnt working. Filter #2 is logically on if digital input #1 is triggered -> no delay.

You haven´t respected the order of the functions. The delay only is triggered if filter #2 is switched off (not the socket!). It´s not posible at the moment to "grab" the socket with programmable logic.

A Solution would be:

PL1 (replaces old PL#2):
Input #1: Water change [inverted]
Input #2: Filter #2
Function: AND

PL2 (replaces old PL#3):
Input #1: Digital input #1
Input #2: Programmable logic #1
Function: AND

PL3 (replaces old PL#1):
Input #1: Programmable logic #1
Time: 300
Function: delayed on

As you can see, it uses exactly the same functions as your logic, only the order and chain-linking is different.
Try it out - I can´t guarantee that it is correct due I don´t know your other settings, but it should work in general.