Good luck. I'd suggest working with tibbles all the time. The only annoyance is seeing more than the first few lines, which you can solve with
some_tibble %>% print(n = Inf) # for everything or some smaller number
Because a tibble is a data frame with an extra shot, I'm surprised you have the troubles you describe. Next time it happens, it would be interesting to see a reproducible example, called a reprex
Good luck!