Partitioning is one of these features that looks cool, but falls apart when you actually try to use it, and you may find yourself in a situation where there are only poor solutions to choose from.
Had PtableID been an integer fed by IDENTITY or a sequence, you could have partitioned on the ID values, but now you have a GUID.
To partition the table on CreatedDate, you need to include that column in all unique indexes. Now you did not partition the clustered index, and thus the table is not partitioned. It would not be any better if you made the PK non-clustered and stored it outside the partition scheme. That wold be a non-aligned index, and it would block TRUNCATE TABLE on partition level.
The reason the partition key must be part of the unique index is quite obvious when you think of it: else SQL Server cannot enforce the uniqueness of the index. That is, you don't want SQL Server to check 15000 partitions on a single INSERT if the key is a duplicate.
And if you promote CreateDate to the PK in PTable, you also need to modify the FK in the other table accordingly.
Obviously adding CreateDate to the PK in Ptable stinks. Now you can get the same GUID many times.
With all my years in SQL Server I have never implemented a partitioned table for an application I have been working with.