The root cause here is pretty banal: your main table rows for each module don't have a cell defined, so Marketo's rejecting them as invalid. Adding a <td> wrap around each module fixes things.
Also: if you're working with MJML and like Marketo and Slack, you should come hang out with us in #emailgeeks land instead of trying to reinvent the wheel--I'm on there pretty regularly.
I was looking for a community without luck, so I started my own! I'll certainly join.