I used sylius sandbox aplication as a guide too, if not used as a guide it may cause more confusion, try to make your own code all over and use the sandbox as a reference.
2 points...
- I believe Sylius-Sandbox is deprecated (use Sylius/Sylius instead)
- To implement image management, there may be 2 options: 1- use the built-in image management from sylius which implements an image per variant. 2- Build your own implementation similar to what you have in your product entity code.
On my implementation I thought it was simpler to use a OneToMany relationship from the Product entity with an Image entity, obviously it depends on your requirements. I used symfony documentation for the Image entity.