I spent a long time in Phaser 2 working with your aproach because the tilemap renderer was very much inferior in Phaser 2. I was batching the png level to the vram using texture priority and it worked very well performance wise but I was constantly running into limits with the upper limits of texture sizes for the GPU. That coupled with the massively increased development time for not using tilemaps (re-exporting pngs every time a change was made, handling all the groups, objects, etc), I came to the conclusion that this was a ton of work when I was essentially optimizing my game in early development which is a big mistake.
Then I tested Phaser3's tilemap rendering and was blown away at how good the performance was. I came to the conclusion that it would be much better to use tilemaps in Phaser 3 and focus on developing the game and then swing back and worry about FPS close to the end. So far I found that Phaser3 can handle quite a complex scene with a good size tilemap and still performs great. Of couse a lot of this is dependent on your code and how big your tiles and map are.
In terms of one way collisions I haven't gotten that far in Phaser3 but it was fairly easy to do in phaser 2 with arcade physics. It looks like the functionality is there for arcade in Phaser 3:
So I would look at this Phaser 2 example and see if you can replicate it using Phaser3's API:
If you do get it working make sure you share your code. 😃