Instead of partial it can be beneficial to use tune.with_parameters instead (especially when passing large objects).
But your code from the pastebin generally looks correct. The issue is that PPO itselfs tries to start actors, and there are not enough resources in your placement group for them to start.
You can try building your PPOConfig in the main() function. Then you can use
pgf = ppo.PPO.default_resource_request(config)
to build the placement group factory automatically.
You can then pass the PPOConfig as a param_space item to tune.Tuner.