Peter Mogilnitski - yes but no, it does work :) and it is not related to the issue.
Zach Perry - Yes I know, hence my headache.
After investigation I found out that you need to actually use a Kentico model and not a model outside, I suspect that my model does not implement an interface that is necessary before using it in macro (I think you need to implement 'this[string columnName]' accessor.
That would be nice from Kentico team to know a bit more about that, for now I will need to convert my models into DataSet/Table/Row model (tried and it works) but hell, it is long and painful to convert a 4 level model into a DataTable.